【发布时间】:2023-02-13 19:41:27
【问题描述】:
所以我有这个斐波那契数列的记忆算法,我遇到了一些奇怪的事情,如果我通过备忘录听写第 4 行,或者如果我不这样做,我想了解为什么?不是备忘录应该在以后的递归调用中为空?
这是没有通过的代码备忘录在第 4 行:
def fib(n , memo = {}):
if(n<=2): return 1
if(n in memo): return memo[n]
memo[n] = fib(n-1) + fib(n-2)
return memo[n]
这是我通过它的时候:
def fib(n , memo = {}):
if(n<=2): return 1
if(n in memo): return memo[n]
memo[n] = fib(n-1 , memo) + fib(n-2 , memo)
return memo[n]
您可以尝试一下,输出没有区别。
【问题讨论】:
-
您为什么期望输出有所不同?
标签: python dynamic-programming fibonacci memoization