フィボナッチ:再帰木 vs メモ化

同じ計算を何度もやり直す素朴な再帰が、「答えを覚えておく」だけで一気に枝刈りされる 様子を体感します。

計算する n
6
方式
実行ステップ(呼び出し順に展開)
1
素朴な再帰の呼び出し回数
メモ化の呼び出し回数
F(n) の値
計算するノード
基底(F0 / F1)
メモから即答(再計算しない)
いま展開中
フィボナッチ数列は F(n) = F(n-1) + F(n-2)F(0)=0, F(1)=1 で定義されます。
素朴に再帰すると、同じ F(k) を何度も計算し直して 呼び出し回数が指数的に爆発します。
一度計算した値を表に控えておく メモ化 をすると、2 回目以降は表を引くだけ。これが 動的計画法(DP)の出発点です。

いま何が起きている?

ここが DP の本質