这是优惠券收集器问题https://en.wikipedia.org/wiki/Coupon_collector' s_problem
问题 - http://www.spoj.com/problems/FAVDICE/
y=n*log(n)+0.5*n+0.5;
编辑: 预期产量为37.24,而n = 12则为35.82 表达式中可能出现什么错误?
答案 0 :(得分:1)
回到维基百科的文章;检查你的伽玛值
const float GAMMA = 0.577215664;
y=n*log(n)+GAMMA*n+0.5;
输出
37.2455
或者更好的是完全删除了伽玛
double H(int n){
double sum = 0.0;
for(int i = 1; i <= n; i++){
sum += 1/double(i);
}
return sum;
}
...
cout << setprecision(4) << n*H(n);