首页 > 代码库 > SPOJ FAVDICE 数学期望

SPOJ FAVDICE 数学期望

题目大意:

一个有n面的色子抛掷多少次能使所有面都能被抛到过,求期望值

 

总面数为n,当已经抛到过 i 个不同面时,我们抛出下一个不同面的概率为 (n-i)/n,那么抛的次数为 n/(n-i)

将所有抛出下个面的次数累加起来就好了

 1 #include <cstdio> 2 int main(){ 3     int kase,n; 4     scanf("%d",&kase); 5     while(kase--){ 6         scanf("%d",&n); 7         double ans = 0; 8         for(int i = 1;i <= n;i++)   ans += (n+0.0)/(i+0.0); 9         printf("%.2f\n",ans);10     }11     return 0;12 }