您的位置:首页 > 其它

uva 10056 What is the Probability?

2013-02-04 19:35 447 查看
数学题(概率,精度)

题意:n个人丢骰子,丢到某个点数为赢然后结束,从第1个人开始丢然后依次下去,然后循环回来,直到有人赢为止。输入n个赢,每个人丢到目标点数的概率,第m个人,求第m个人赢的概率

算出在第一轮中第m个人赢的概率q1

算出第2轮中第m个人赢的概率q2

……………………

算出第k轮中第m个人赢的概率qk

ans=q1+q2+q3+q4……+qk

其中要设置一个精度qk<E , E的精度随便搞一个都差不多了

#include <cstdio>
const double E=1e-10;

int main()
{
int T,n,m,c;
double p,ans,t,q;
scanf("%d",&T);
while(T--)
{
scanf("%d%lf%d",&n,&p,&m);
t=1;
for(int i=1; i<=n; i++) t*=(1-p);
c=0; ans=0;
while(1)
{
q=1;
for(int i=0; i<c; i++) q*=t;
for(int i=1; i<m; i++) q*=(1-p);
q*=p;
if(q<E) break;
else    ans+=q;
c++;
}
printf("%.4f\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: