我正在尝试近似e(〜2.7)的值
以此定义,每n个词
在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,并且随后的每一步的错误余量都变得更糟。我已经用谷歌搜索了,但我无法设法找出如何递归设置函数,以便它输出期望值。
答案 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))