数学期望 概率递推
每一天的概率都是独立且相同的。可以先推出每天打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 #include3 #include 4 #include 5 #include 6 #include 7 #include 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 }