题目大意:有N个人玩掷色子游戏,只要抛到某一特定的面就算赢了,而抛到这个面的概率是P,求第M个人赢的概率
解题思路:第M个人赢的概率是:
在第一轮赢了:K1
在第二轮赢了:K2
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main() {
int test, N, M ;
double p;
scanf("%d",&test);
while(test--) {
scanf("%d %lf %d",&N,&p,&M);
int time = 1;
M--;
double ans = p * pow(1-p,M);
double pre = 0.0;
while(ans - pre > 1e-7) {
pre = ans;
ans += p * pow(1-p,N * time + M);
time++;
}
printf("%.4lf\n",ans);
}
return 0;
}
...
那么赢的概率就是K = K1 + K2 + 。。。 + KN