Я пишу программу, которая вычисляет идентификатор Pascal двух переменных, жестко закодированных в программе, поскольку я новичок в Python и пытаюсь кэшировать и хранить мемуары. Вот то, что я до сих пор:Использование мемуаров/Хранение кеша
counter = 0
call_cacheK = {}
def callTest(n, k):
global counter
if n in call_cacheK:
return call_cacheK[n]
if k == 0:
return 1
elif k == n:
return 1
elif (1 <= k) and (k <= (n-1)):
counter += 1
#call_cacheK[n] = result
result = ((callTest(n-1, k) + callTest(n-1, k-1)))
print(result)
return result
callTest(20, 11)
#167,960
Моя функция будет выводить окончательный реальный ответ с тем, что она имеет сейчас, но с большим количеством выводимых ответов. Кажется, я не понимаю, как правильно хранить значения, которые будут использоваться в кеше.
Как правильно использовать call_cacheK
для хранения значений result
, которые я уже использовал?
спасибо.
Канонический метод memoization с декоратором, я предлагаю вам изучить это. Что касается этого, вы, похоже, не пытаетесь * вставить что-либо в кеш. – jonrsharpe