问题:
给你一个硬币,扔到正面的概率是p,扔到负面的概率是 1- p。问题是:平均需要扔多少次,才能得到连续的2个正面。
例子:假设正面用 A 表示, 负面是 B表示 ,那么两个连续正面必须是 AA挨着,不能是 A B A B 这样的。
分析:
假设需要 T 次。 如果我们扔的第一次就是负面,那么第一次就白搭,我们还需要再扔 T 次 (有点混,需要认真思考把它想清楚)。如果我们第一次扔的是正面,那么第二次有可能是正面,也有可能是负面,如果是正面,刚好,满足情况;如果是负面,前面两次就白搭了,我们需要再扔 T次。
所以, T = (1 - p)(1 + T) + p(1 - p) (2 + T) + p * p * 2
解释: (1 - p)(1 + T) 指的是 第一次扔负面的情况, p(1 - p) (2 + T) 指的是第一次扔正面,第二次扔负面的情况, p * p * 2 指的是第一次和第二次都扔到正面的情况。
解出来 T = (1 + p) / p^2
假设要求连续扔出3个正面,那个式子就是:
T = (1 - p)(1 + T) + p(1 - p) (2 + T) + p^2((1 - p) (3 + T) ) + p * p * p* 3
T = (1 + p + p^2 ) / p^3
如果要求扔出 n 个正面,T = (p ^ (-n) - 1) / (1 - p)
扩展:
要求连续扔 n 个正面,目前已经扔了 m 个正面, 请问还需要扔多少次才能达到 n 个正面?
分析:
利用类似的分析方法,如果我们下一次扔出正面,就相当于已经扔出了m+1个正面,而如果扔出了一个负面,前面m个正面其实是白搭,我们需要从头开始扔 n 个正面。前面部分我们已经讲了扔n 个正面需要的次数T。如果我们写一个递归函数,那么这个这个递归为:
假设 T (n, m) 为 我们的答案,那么 T(n, m ) = p ( 1 + T (n, m+1) ) + (1 - p) (1 + T (n, 0))。 退出条件为 m = n, 此时 T (n, m) = 0.
转载请注明出处:http://blog.csdn.net/beiyeqingteng