题目大意:
四个骰子,每个骰子的六面随机印有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。