Memoize とはキャッシュを用いて関数呼び出しを高速化する手法
・関数が同じ引数で何度も呼び出される
・関数呼び出し 1 回あたりのコストが高い (実行時間が長い)
等で使用すると効率的に関数を呼び出すことが出来る。
MemoTable = {}
def MemoizedFib(n):
if n <= 2:
return 1
if n in MemoTable:
return MemoTable[n]
MemoTable[n] = MemoizedFib(n-1) + MemoizedFib(n-2)
return MemoTable[n]
res = MemoizedFib(10)