Advertisement

数学题(概率)UVA 10056-What is the Probability ?

阅读量:

数学题(概率)UVA 10056-What is the Probability ?


题目链接:

F - What is the Probability ?

思路:

题目情景是有N个人,每个人获得想要得的数字的概率都是p,轮流抽,当有一个人获得想要的数字时,游戏结束,问第 I 个人获胜的概率

其实就是一个转圈抽奖的问题,设N个人都抽一次为一轮,那么第I个人在 K轮获胜的概率等价于 K-1轮没人抽到奖 * 第K轮前I-1人没抽到奖 * 第I个人抽到奖

写成公式P={{N}}{*(K-1)}*(1-p){I-1}*p

所以第I个人的获胜概率等于在第K轮获奖概率的总和:P_{win}=um_{nfty }^{k=1}P

运气不好可能抽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)

还没有任何评论哟~