欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

UVa11427 Expect the Expected

发布时间:2025/7/14 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 UVa11427 Expect the Expected 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

 

数学期望 概率递推

每一天的概率都是独立且相同的。可以先推出每天打i盘赢j盘的概率f[i][j]

f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p

    输          赢

设此人打一天胜率不满足要求的概率为p

那么打一天的概率是1*p

打两天的概率是1*p*(p^2)

以此类推

----

题解待施工 

学自http://www.cnblogs.com/neopenx/p/4282768.html

----

 

WA点:

  1、a和b用double存,可能引起了精度误差。

  2、输出没换行

1 /*by SilverN*/ 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<cstdio> 6 #include<cmath> 7 #include<vector> 8 using namespace std; 9 const int mxn=110; 10 int n; 11 double f[mxn][mxn]; 12 int main(){ 13 int T;int i,j,a,b,cas=0; 14 scanf("%d",&T); 15 double p; 16 while(T--){ 17 memset(f,0,sizeof f); 18 scanf("%d/%d%d",&a,&b,&n); 19 p=(double)a/b; 20 f[0][0]=1; 21 f[0][1]=0; 22 for(i=1;i<=n;i++){ 23 f[i][0]=f[i-1][0]*(1-p); 24 for(j=1;j*b<=i*a;j++){ 25 f[i][j]=f[i-1][j]*(1-p)+f[i-1][j-1]*p; 26 } 27 } 28 double res=0.0; 29 for(i=0;i<=n;i++)res+=f[n][i];// 30 double ans=1/res; 31 printf("Case #%d: %d\n",++cas,(int)ans); 32 } 33 return 0; 34 }

 

转载于:https://www.cnblogs.com/SilverNebula/p/6252988.html

总结

以上是生活随笔为你收集整理的UVa11427 Expect the Expected的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。