博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA.11427.Expect the Expected(期望)
阅读量:5010 次
发布时间:2019-06-12

本文共 965 字,大约阅读时间需要 3 分钟。

\(Description\)

1143196-20180919214613470-400078243.png

\(Solution\)

首先每一天之间是独立的。

所以设\(f[i][j]\)为前\(i\)天赢了\(j\)局的概率,要满足当前获胜比例始终≤\(p\)。容易得出转移方程。
所以玩完\(n\)局之后获胜比例仍不超过\(p\)的概率为\(Q=\sum_{i=0}^{\frac in\leq p}f[n][i]\)
\(E\)为期望玩牌天数。有两种情况:
1.\(Q\)的概率不再玩了,期望为\(Q\times1\)
2.\(1-Q\)的概率第二天接着玩,期望为\((1-Q)\times(E+1)\)
所以\(E=Q+(1-Q)\times(E+1)\),解得\(E=\frac 1Q\)

有点迷,但好像也确实是这样。。

#include 
#include
const int N=105;double f[N][N];void Work(int T){ int a,b,n; scanf("%d/%d%d",&a,&b,&n); double p=1.0*a/b; f[0][0]=1; for(int i=1; i<=n; ++i) { f[i][0]=f[i-1][0]*(1-p); for(int j=1; j<=i; ++j) f[i][j]=0;//! for(int j=1; j*b<=i*a; ++j) f[i][j]=f[i-1][j]*(1-p)+f[i-1][j-1]*p; } double q=0; for(int i=0; i*b<=n*a; ++i) q+=f[n][i]; printf("Case #%d: %d\n",T,(int)(1.0/q));//直接.0lf是四舍五入...}int main(){ int T; scanf("%d",&T); for(int i=1; i<=T; Work(i++)); return 0;}

转载于:https://www.cnblogs.com/SovietPower/p/9678038.html

你可能感兴趣的文章
将Windows Server 2016 打造成工作站(20161030更新)
查看>>
5大主浏览器css3和html5兼容性大比拼
查看>>
hdu-5894 hannnnah_j’s Biological Test(组合数学)
查看>>
scss常规用法
查看>>
css定位position属性深究
查看>>
android中不同版本兼容包的区别
查看>>
Static 与 new 的问题【待解决】
查看>>
xml
查看>>
在 mvc4 WebApi 中 json 的 跨域访问
查看>>
敏捷开发文章读后感
查看>>
xposed获取context 的方法
查看>>
html5 canvas 图像处理
查看>>
He who hesitates is Lost
查看>>
php中引用&的真正理解-变量引用、函数引用、对象引用
查看>>
关于<form> autocomplete 属性
查看>>
OutOfMemory
查看>>
LeetCode:组合总数III【216】
查看>>
Thinkphp框架回顾(三)之怎么实现平常的sql操作数据库
查看>>
虚函数的效率问题
查看>>
POJ 1860 Currency Exchange(SPFA 判断有无“正”环)
查看>>