`
yangliuy
  • 浏览: 65458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

POJ 3744 数学题概率题 矩阵乘幂

 
阅读更多

转的网上的解题报告http://hi.baidu.com/rpsproblem/blog/item/d2cbe67aa1d8b5fd0bd1875f.html,用于备战校赛

按照题目的意思,我们很容易推出公式:
f[i] = p*f[i-1] + (1-p)*f[i-2];
f[i]表示到达位置i的概率(不是安全到达那些很复杂之类的概率,就只是简单的到达的概率),p为题目给的概率
由于有的原因,就不能直接算了。
这里我用 x[i]表示第i颗的位置
但如果把整个过程按照来分阶段,起点为x[i-1]+1,终点为x[i],这样每个阶段就只有终点有了(这就很容易算可达概率了)
所以我们可先算在阶段 i ,从起点x[i-1]+1到x[i]的概率qi,这个概率就表示踩到x[i+1]的概率了,那么1-qi就表示这一阶段安全的概率了(我有点不是很明白的就是它具体跳到哪里去了,不过如果按照这样划分阶段的模型,很容易知道结果是正确的)
所以把每个阶段安全可达的概率乘起来就是总的概率了(1-q1)(1-q2)...(1-qn)

这里需要用矩阵乘法快速幂来加速
观察公式
f[i] = p*f[i-1] + (1-p)*f[i-2];
跟Fibonacci数列很像,可用poj3070的方法来构造

| p 1 |
| 1- p 0 |

然后就可用快速幂加速了!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics