利用递推解概率问题

来源:互联网 发布:扫眉才子知多少 编辑:程序博客网 时间:2024/06/05 06:01

1. 某种病菌,生命周期为一天,死亡之前会产生一些后代,生产 i 个后代的概率为 Pi ( i =0, ..., n-1) ,如果第一天有 k 个病菌,那么第 m 天病菌数量为 0 的概率是多少?

考虑一个病菌的情况,记 j 天后数量为 0 的概率为 f(j) ,那么 k 只病菌到第 j 天全部消失的概率为 f(j)^k ;第 2 天到第 j 天时间为 j-1 天,所以第二天的 1 只病菌到第 j 天消失的概率为 f(j-1),第二天的病菌数目可能性如下,及他们在第 j 天全部消亡的概率为:

数量  概率     第 j 天全部消亡概率

0        P0        f(j-1)^0

1        P1        f(j-1)^1

2        P2        f(j-1)^2

....

n-1    Pn-1    f(j-1)^n-1

所以 f(j) = P0 + P1f(j-1)^1 + P2 f(j-1)^2 + ... + Pn-1 f(j-1)^n-1


2. 小明每天晚上去打牌,每局赢的概率是 p ;如果第一局赢,马上高高兴兴地去睡觉;如果第一局输了,就继续玩,直到赢牌的局数与总局数的比例大于 p 就高高兴兴地去睡觉 ;如果一直到第 n 局都没有比例大于 p 的情况出现,则垂头丧气地去睡觉,并且从此不再玩牌。求平均情况小,小明会玩玩多少天牌。

先求某天晚上 n 局牌都没有赢牌比例大于 p 的,这种情况发生的概率 Q 。记 d(i,j) 为前 i 局一共赢了 j 局且赢牌比例 <= p 的概率,则

d(i,j) = 0  如果  j/i > p

d(i,j) = d(i-1,j) (1-p) + d(i-1,j-1)p  如果  j/i <= p

初始值 d(1,0) = 1-p,  d(1,1) = 0

则 Q = d(n,0) + d(n,1) + d(n,2) + ... + d(n,n)

平均玩牌天数期望值为 1/Q


3. 给出一个整数 N ,每次在不超过 N 的素数中随机选择一个素数 P,如果 P 能整除 N 则将 N 变为 N/P, 否则 N 保持不变。平均情况下要多少次随机选择,才能将 N 变成 1?

记 f(n) 为将 n 变成 1 的数学期望值,p(n) 为小于等于 n 的素数个数,g(n) 为其中整除 N 的素数数目,则:

f(n) = 1 + f(n)(1-g(n))/p(n)) + sum { f(k)/p(n) | 2<=k<=N && k is prime && k / N }


参考《算法竞赛入门经典训练指南》,刘汝佳,陈锋

原创粉丝点击