小编dor*_*010的帖子

你能用这些看似等价的函数来解释 Python 中递归深度的差异吗?

我注意到在我的机器上,以下内容达到了 n = 2960 的最大递归深度:

m = {0:0, 1:1}
def f(n):
    if n not in m:
        m[n] = f(n - 1) + f(n - 2)
    return m[n]
Run Code Online (Sandbox Code Playgroud)

而这个版本达到 n = 988 时:

m = {0:0, 1:1}
def f(n):
    if n not in m:
        m[n] = sum(f(n - i) for i in [1, 2])
    return m[n]
Run Code Online (Sandbox Code Playgroud)

谁能解释一下“幕后”发生了什么来解释这种差异?

更准确地说,如果能够理解为什么此示例中的因子为 3,并能够导出它以使用更多项进行求和,那就太好了。

python recursion limit

24
推荐指数
2
解决办法
1901
查看次数

标签 统计

limit ×1

python ×1

recursion ×1