所以基本上,我是一个学习程序员,本周我介绍了动态规划。我们的任务是使用动态规划来找到斐波那契数列。这个伪代码是提供这显然是一个函数:动态规划 - 斐波那契
init table to 0s
if n ≤ 1
return n
else
if table[n-1] = 0
table[n-1] = dpFib(n-1)
if table[n-2] = 0
table[n-2] = dpFib(n-2)
table[n] = table[n-1] + table[n-2]
return table[n]
多数,这是简单的切换到代码,但我不知道如何初始化0的表。我知道它应该是一个列表,但我不确定它应该在函数内部还是外部,或者我应该初始化多少个零。这是我写的,没有什么复杂的:
def dynamicFibo(n):
# initialise table of 0s
#base case
if n <= 1:
return n
#recursive case
else:
if table[n-1] == 0:
table[n-1] = dynamicFibo(n-1)
if table[n-2] == 0:
table[n-2] = dynamicFibo(n-2)
table[n] = table[n-2] + table[n-2]
return table[n]
我会感激,如果有人能告诉我的方式去与此。另外,总的来说,我很难理解动态规划的基础,所以如果有什么好的资源可以建议我会很高兴,或者即使你能给出一个好的解释。