所以基本上,我是一個學習程序員,本週我介紹了動態規劃。我們的任務是使用動態規劃來找到斐波那契數列。這個僞代碼是提供這顯然是一個函數:動態規劃 - 斐波那契
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]
我會感激,如果有人能告訴我的方式去與此。另外,總的來說,我很難理解動態規劃的基礎,所以如果有什麼好的資源可以建議我會很高興,或者即使你能給出一個好的解釋。