uva 10056 What is the Probability ?

無窮級數 (1-p)^k-1*p+(1-p)^(n+k-1)*p+(1-p)^(2n+k-1)*p+......+(1-p)^(mn+k-1)*p m->正無窮

由等比數列前n項和公式得 (1-p)^(k-1)*p(1-(1-p)^(n*m)/(1-(1-p)^n) ,又因爲(1-p)^(n*m)趨向於0所以得到(1-p)^(k-1)*p/(1-(1-p)^n)。

注意p=0時分母爲0特判。

#include <iostream>
#include<stdio.h>
using namespace std;

int main()
{
    int t;
    scanf("%d",&t);
    int n,k;
    double p,q,ans,a,b;
    while(t--)
    {
        scanf("%d %lf %d",&n,&p,&k);
        if(p==0){ printf("%.4lf\n",p);continue;}
        q = 1 - p;
        a = b = 1;
        for(int i = 1;i <= n;i++)
        {
            if(i <= k - 1) a = a*q;
            b = b*q;
        }
        b = 1 - b;
        ans = 1;
        ans = a/b*p;
        printf("%.4lf\n",ans);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章