LightOJ 1248 Dice (III) 概率DP
扔一个 面筛子,问要看到每一个面至少一次需要扔的期望数。
设 为已经扔了 个面的期望值,则 ,有:
代码如下(期望倒推):
#include<iostream>
#include<cstdio>
//#define WINE
#define MAXN 100010
using namespace std;
int T,iCase,n;
double dp[MAXN];
int main(){
#ifdef WINE
freopen("data.in","r",stdin);
#endif
scanf("%d",&T);
while(T--){
scanf("%d",&n);
dp[n]=0;
for(int i=n-1;i>=0;i--)
dp[i]=dp[i+1]+1.0*n/(n-i);
printf("Case %d: %.8lf\n",++iCase,dp[0]);
}
return 0;
}