【题目来源】:https://cn.vjudge.net/problem/LightOJ-1248
【题意】
给出一个多面的骰子,每次都要转动一次,直到所有的面都被转过来一次,输出次数的期望。
【思路】
假设我们已经转出了第i面,那么第i+1面的概率是1/n-i。
那么推理出来的公式即为:
E=n*(1/1+1/2+1/3+…+1/n)。
【代码】
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int T,cases=1;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
double p=0;
for(int i=1;i<=n;i++)
{
p+=1.0/(i*1.0);
}
printf("Case %d: %lf\n",cases++,p*n);
}
}