Опитвам се да науча повече за динамичното програмиране и рекурсията за Python 3.x. Кодът по-долу е прост пример от моя учебник:
def recMC(coinValueList, change):
minCoins = change
if change in coinValueList:
return 1
else:
for i in [c for c in coinValueList if c <= change]:
numCoins = 1 + recMC(coinValueList, change-i)
if numCoins < minCoins:
minCoins = numCoins
return minCoins
print(recMC([1,5,10,25], 63))
Наистина се боря да разбера ред 6 тук, разбирането на реда. Напълно не съм сигурен какво се случва тук и как да го разбия на цикли, за да разбера малко по-лесно. Това е моята мисъл, както е сега:
for i in c:
for c in coinValueList:
if c<= change:
Но не разбирам как това се повтаря. Може би някой с по-добри познания би могъл да обясни това по различен начин от моята книга и проф.?