数学题(概率)UVA 10056-What is the Probability ?
发布时间
阅读量:
阅读量
数学题(概率)UVA 10056-What is the Probability ?
题目链接:
思路:
题目情景是有N个人,每个人获得想要得的数字的概率都是p,轮流抽,当有一个人获得想要的数字时,游戏结束,问第 I 个人获胜的概率
其实就是一个转圈抽奖的问题,设N个人都抽一次为一轮,那么第I个人在 K轮获胜的概率等价于 K-1轮没人抽到奖 * 第K轮前I-1人没抽到奖 * 第I个人抽到奖
写成公式 :
所以第I个人的获胜概率等于在第K轮获奖概率的总和:
运气不好可能抽10000轮都没人中奖,题目只要求保留4位,那当P(K)<1e5 就没有计算价值了
代码:
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
#define Min_Precision 1e-6
int main()
{
int S,N,I;
double p;
cin>>S;
while(S--)
{
cin>>N>>p>>I;
double Res=0.0;
double Circle=pow(1-p,I-1)*p; //第I人中奖
double NoOne_pro=pow(1-p,N); //一轮下来没人中奖
while(Circle>Min_Precision)
{
Res+=Circle;
Circle*=NoOne_pro;
}
cout<<fixed<<setprecision(4)<<Res<<endl;
}
return 0;
}
全部评论 (0)
还没有任何评论哟~
