Я пытаюсь узнать о динамическом программировании и рекурсии для 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:
Но я не понимаю, как это повторяется. Возможно, кто-то с лучшими знаниями мог бы объяснить это иначе, чем моя книга и профессор?