Так что, в основном, я программист, и на этой неделе я познакомился с динамическим программированием. Наша задача состояла в том, чтобы найти последовательность Фибоначчи, используя динамическое программирование. Этот псевдо-код подавался, который, очевидно, будет в функции:Динамическое программирование - Fibonacci
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]
Большинство это было просто, чтобы изменить код, но я не уверен, как инициализировать таблицу 0s. Я знаю, что это должен быть список, но я не уверен, должен ли он находиться внутри функции или снаружи или сколько нулей мне нужно инициализировать. Это то, что я не писал, ничего сложного:
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]
Я был бы благодарен, если кто-то может показать мне путь, чтобы пойти с этим. Кроме того, в целом я стараюсь понять основы динамического программирования, поэтому, если есть какие-то хорошие ресурсы, которые вы могли бы предложить, я был бы в восторге или даже если бы вы могли дать хорошее объяснение.