问题 任何有效的方法来计算到第n个项的谐波系列之和? 1 + 1/2 + 1/3 + - + 1 / n =? [关闭]


这个系列有什么公式“1 + 1/2 + 1/3 + --- + 1 / n =?”我认为对于k = 1到n,它是和(1 / k)形式的谐波数。


9857
2017-09-20 01:27


起源

这属于例如 math.stackexchange.com - You
不是真的 - 不够先进。 - duffymo
嗯,这不是编程相关的 - 它与数学相关。 - You
@duffymo:实际上,math.stackexchange.com听起来像是这个问题的完美家园 - 它明确地用于“任何级别的数学”,不像mathoverflow.net。 - Jim Lewis
为什么不移动它而不是关闭它?搜索引擎仍然链接到这些封闭的问题,对于新用户来说,这样做通常没有效果且不受欢迎。 - Xonatron


答案:


因为它是 谐波系列 总结为 n,你正在寻找 n谐波数,大约给出 γ + ln[n],哪里 γ 是个 Euler-Mascheroni常数

对于小 n,直接计算总和:

double H = 0;
for(double i = 1; i < (n+1); i++) H += 1/i;

8
2017-09-20 01:35





如果我理解你的问题是正确的,那么阅读本文可以帮助你: http://en.wikipedia.org/wiki/Harmonic_number


3
2017-09-20 01:33





这是一种看待它的方法:

http://www.wolframalpha.com/input/?i=sum+1/j,+j%3D1+to+n


2
2017-09-20 01:32





function do(int n) 
{
    if(n==1)
        return n;

    return 1/n + do(--n); 
}

0
2017-09-20 01:35



虽然递归解决方案看起来很优雅,但在这种情况下它是不合适的。 - You
如果数量足够大,您将获得堆栈溢出,或者您将基本上添加零,并且不会真正更改值。 - James Black
我想他会使用小样本号 - bevacqua