gpt4 book ai didi

python - 如何在Python中递归地表达无限嵌套分数

转载 作者:行者123 更新时间:2023-12-01 01:12:07 24 4
gpt4 key购买 nike

我对 python 比较陌生,正在尝试通过近似各种数学常数来提高我对递归的理解。我找到了 e (2.718...) 的无限嵌套分数形式的表达式:2 + 2/(2 + 3/(3 + 4/(4 + 5/...

)

请查看图片:位于以下地址:

https://wikimedia.org/api/rest_v1/media/math/render/svg/98e36faf34d05cb60882518818c7e6c9c7dca5e4

我想找到一种方法来递归地近似该值,但在编写函数的返回行时我不知道从哪里开始。特殊的障碍是,当您深入分数层时,数字会变得更大,因此 f(n - 1) 不能在基本情况为 n == 0 的返回行中使用。任何帮助或建议都将非常有用赞赏!

最佳答案

任何递归函数都需要一个停止条件,以便它最终能够产生结果(即不会无限循环)。

这是一个以迭代次数作为停止条件的示例(您可以使用精度、时间或任何其他方案来使递归停止):

def neperian(n,d=1):
if d == n : return n
return max(2,d) + (d+1)/neperian(n,d+1)

print(neperian(10)) # 2.7182818427778273
print(neperian(20)) # 2.7182818284590455

这个收敛速度非常快,因此您早在遇到大量问题之前就可以达到最大浮点精度。

关于python - 如何在Python中递归地表达无限嵌套分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com