Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用递归法计算纳皮尔常数(e)_Python_Python 3.x_Recursion - Fatal编程技术网

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

Python 用递归法计算纳皮尔常数(e),python,python-3.x,recursion,Python,Python 3.x,Recursion,我试图近似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,

我试图近似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,接下来的每一步的误差都会更大。我已经在谷歌上搜索过了,但我无法想出如何递归设置函数以使其输出预期值。

从代码中,我不明白您的目的是什么,也许您可以提供更多信息让我们更好地了解。你可以尝试在线可视化执行,我正在尝试创建e~2+1/(1+1/(2+2/(3+3/))的函数,我希望这有意义,我不知道如何更好地格式化它。这是一个竞赛的例子,我一辈子都记不起如何正确设置递归函数了。添加了一个图像,希望能澄清我想要完善的东西。非常感谢,我甚至没有意识到我在基本情况下需要v1
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))