Answer

问题及解答

Riemann Zeta 函数的编程

Posted by haifeng on 2015-09-16 17:54:16 last update 2015-09-19 16:36:18 | Edit | Answers (1)

http://www.cplusplus.com/forum/general/93834/

1

Posted by haifeng on 2015-09-20 22:04:42

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分多钟.