King Arthur's Birthday Celebration

 每天抛一个硬币,硬币正面朝上的几率是p,直到抛出k次正面为止结束,第一天抛硬币需花费1,第二天花费3,然后是5,7,9……以此类推,让我们求出抛硬币的天数的期望和花费的期望。

天数期望:

A.投出了k-1个硬币正面朝上花费了E(k-1)天,再投出一个硬币正面朝上(概率为p,花费时间+1天);B.投出了k个硬币正面朝上花费了E(k)天,投出一个硬币反面朝上(概率为1-p,花费时间+1天)。分析的时候不能漏掉B情况,得到关系式:E(k)=p*(E(k-1)+1)+(1-p)*(E(k)+1),整理可得E(k)=E(k-1)+1/p,迭代或者数学归纳可知最终的E(k)=k/p。
P.S:换个角度理解,投硬币其实是一个完全独立的事件,正面朝上的概率是p,整体看来要出现k次正面朝上需要投硬币k/p次,每次投币花费一天,因此投出k个硬币正面朝上需要k/p天。

花费期望:

设投出k个硬币正面朝上花费期望为C(k),
整理关系式:C(k)=p* C(k-1) +(1-p)*C(k) + 2*E(k)-1
#include<bits/stdc++.h>
using namespace std;

int main()
{
    double n,p;
    while(scanf("%lf",&n),n)
    {
         scanf("%lf",&p);
         printf("%.3lf %.3lf
",n/p,((n*n+n)/p-n)/p);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/bxd123/p/10484178.html