您的位置:首页 > 其它

POJ3716-Panda's Birthday Present题解

2014-08-09 10:37 190 查看

题目大意:

四个骰子,每个骰子的六面随机印有0或1,每一次投掷,记录1的个数。现已知道前两次1的个数,求第三次投掷出现1的个数的期望。

样例:

Simple input

2 2

Simple output

2.000

Simple input

4 4

Simple output

2.571

算法分析:

    这是一道条件概率的简单题,只要掌握条件概率的公式,基本就能得到结果,但是对于像我这种战斗力为0的渣渣,对着题解硬是看了好几天,才推出了最后的结果。所以我觉得很有必要写一片详细的题解。

1、由于4个骰子是相互独立的,所以可以分开计算。假设每个骰子再次出现1的期望为Ei,那么对于总的期望E=sum(Ei|i=[1,4]);

2、针对每一个骰子,前两次出现的可能情况共有四种(00)(01)(10)(11),只要分别计算就行;

3、现在就以(11)为例,计算P(X=1|X=11):

P(X=1|X=11)= sum(P(X=1|T=t)* P(T=t|X=11))

P(X=1|T=t)= t / 6

P(T=t|X=11)= P(X=11|T=t)*P(T=t)/ P(X=11)

P(X=11|T=t)= (t / 6)^2

P(T=t)= C(6,t)/ 2^6 = C(6,t)/ 64

P(X=11)= sum(P(X=11|T=t)*P(T=t))

那么P(X=1|X=11) = sum(P(X=1|T=t)* P(T=t|X=11))

                   = sum(P(X=1|T=t) * P(X=11|T=t)*P(T=t) / P(X=11))

                   = sum(P(X=111|T=t)* P(T=t))/ sum(P(X=11|T=t)*P(T=t))

接下来直接笔算出结果:

E(111)= P(X=1|X=11)

得:E(001)= 5 / 14

    E(011)= E(101)= 1 / 2

    E(111)= 9 / 14

问题到这里似乎可以完美解决了,接下来只要穷举每个骰子出现的情况就可以得到结果。

但还有没有更简单的计算方法呢???

答案是肯定的:

现在,我们不妨设G(0)为0对与结果的贡献率,G(1)为1对结果的贡献率:

求解:E(001)= G(0)* 2

      E(101)= E(011)= G(1)+G(0)

      E(111)= G(1)* 2

求解此方程组可知G(0)= 5 / 28;G(1)= 9 / 28

即无论前两次的情况如何,其中每出现一次1,那么结果就会增加G(1)。并且,该式子恒成立。那么,原问题就变为(M+N)*G(1)+ (8-M-N)*G(0)= (M+N+10)/ 7。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: