http://acm.hdu.edu.cn/showproblem.php?pid=3910
题意没怎么看懂。。只知道两个人玩这个游戏,只有4张牌,两张杀,两张闪。
这个题看到结题报告后哭了。。。
http://www.cnblogs.com/kuangbin/archive/2011/08/13/2137237.html
10来行代码。。。核心的公式一行。。。
但是要看懂这一行公式比较难。。。
最终求的就是一个人得分的数学期望不要受另外一个人的影响!
设Alice取sha的概率为x,Bob取sha的概率为y。
则Alice得分的数学期望为:
x*y*A+(1-x)*(1-y)*B-x*(1-y)*C-y*(1-x)*C
=(1-x)*B-x*C+(x*A-(1-x)*B+x*C-(1-x)*C)y
令y的系数为0可以解得x,
x=(B+C)/(A+B+2*C)
故数学期望为:(1-x)*B-x*C
设Alice取sha的概率为x,Bob取sha的概率为y。
则Alice得分的数学期望为:
x*y*A+(1-x)*(1-y)*B-x*(1-y)*C-y*(1-x)*C
=(1-x)*B-x*C+(x*A-(1-x)*B+x*C-(1-x)*C)y
令y的系数为0可以解得x,
x=(B+C)/(A+B+2*C)
故数学期望为:(1-x)*B-x*C
代码:
#include<stdio.h>
int main()
{
int A,B,C;
while(scanf("%d%d%d",&A,&B,&C)!=EOF)
{
double x=(double)(B+C)/(A+B+C*2);
printf("%.6lf\n",(1-x)*B-x*C);
}
return 0;
}