Riemann Zeta 函数的编程
http://www.cplusplus.com/forum/general/93834/
http://www.cplusplus.com/forum/general/93834/
1
long double zeta(long double s)
{
long double sum=0;
long double remain=0;
for(int i=1; ; i++)
{
remain=1.0/pow(i,s);
if(remain>0.0000001){
sum+=remain;
}else{
break;
}
}
return sum;
}
评论: 这个算法虽然很直接,但是效率十分低下,如果 remain > 0.000000000000001 , 则光算前九个 $\zeta(n)$ ($n=2,3,\ldots,10$)值就得花4分多钟.