[UVA10056] What is the Probability ?
2017年9月14日题目大意:有 n 个人在轮流玩类似于投骰子的游戏,游戏规则是这样的:第 1 个人扔一次,第 2 个人扔一次, … , 第 n 个人扔一次,第 1 个人扔一次,第 2 个人扔一次…如此循环扔,直到有一个人胜出后就结束游戏。已知每个人获胜的概率都相同,为 p,问你第 k 个人获胜的概率。
第 k 个人要获胜,可以在第一轮获胜,或者在第二轮获胜,或者在第三轮获胜…或者在第t轮获胜。
第一轮获胜的概率为 (1-p)^{k-1}p:表示前 k – 1 个人不获胜,第 k 个人获胜
第二轮获胜的概率为 (1-p)^{k-1+n}p:表示已经经过一轮都没获胜,第二轮的前 k – 1 个人不获胜,第 k 个人获胜
…
第 t 轮获胜的概率为 (1-p)^{k-1+tn}p:表示已经经过 t 轮都没获胜,第二轮的前 k – 1 个人不获胜,第 k 个人获胜
把上面都加起来就是答案了:\sum_{t=0}^\infty {(1-p)^{k-1+tn} \times p}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--) {
int n, k;
double p;
scanf("%d %lf %d", &n, &p, &k);
double ans = 0;
for (int i = 0; i < 100; i++) {
ans += pow(1 - p, k - 1 + i * n) * p;
}
printf("%.4lf\n", ans);
}
return 0;
}