使用递归计算纳皮尔常数(e)

时间:2018-09-07 03:05:12

标签: python python-3.x recursion

我正在尝试近似e(〜2.7)的值

以此定义,每n个词

defined by this, for each nth term

在python中使用递归函数。

到目前为止,我已经明白了,

def NapierConstant(runs):
    return 2 + 1/contfrac(1, 2, runs)

def contfrac(v1, v2, limit):
    if v1 == limit:
        return (v1/v2)
    else:
        return v1+(v1/contfrac(v1+1, v2+1, limit))

print(NapierConstant(2))

这应该在这里输出2.72727,但是我得到的是2.4,并且随后的每一步的错误余量都变得更糟。我已经用谷歌搜索了,但我无法设法找出如何递归设置函数,以便它输出期望值。

1 个答案:

答案 0 :(得分:3)

def get_e(lim):
    return 2 + 1/r(1, lim)

def r(v1, lim):
    if v1 == lim:
        return v1 + v1/(v1+1)
    else:
        return v1 + v1/(r(v1+1, lim))