题意:n个人轮流扔色子,知道有人赢了,赢的概率是p,求第k个人赢的概率,
P(k)=p*(1-p)^k-1*(1+(1-p)^n+(1-p)^2n....)就是第一轮,第二轮...才赢的所有情况
最后得到P(k)=(1-((1-p)^n)^N)(N->无穷)/(1-(1-p)^n)取极限得到:p*(1-p)^k-1/(1-(1-p)^n)
注意p=0的时候,直接结果是0.0000
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int n,k;
double p;
int main(){
int t;
scanf("%d",&t);
while (t--){
scanf("%d%lf%d",&n,&p,&k);
if (p == 0.0)
printf("0.0000\n");
else printf("%.4lf\n",p*pow(1-p,k-1)/(1-pow(1-p,n)));
}
return 0;
}