小编PFO*_*998的帖子

动态规划 - 斐波那契

所以基本上,我是一名学习型程序员,本周我被介绍了动态编程。我们的任务是使用动态规划找到斐波那契数列。提供的这个伪代码显然是在一个函数中:

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]
Run Code Online (Sandbox Code Playgroud)

其中大部分很容易更改为代码,但我不确定如何初始化 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]
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我解决这个问题的方法,我将不胜感激。此外,总的来说,我很难理解动态编程的基础,所以如果有任何好的资源可以建议我会很高兴,或者即使你能给出一个很好的解释。

python dynamic fibonacci

3
推荐指数
1
解决办法
6665
查看次数

标签 统计

dynamic ×1

fibonacci ×1

python ×1