Startup Data scientist Blog

データ分析系のテック情報を発信します

Pythonを使ったMemoizeとは

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)