离散数学与证明 I · 递推关系与递归过程
F(n)=F(n-1)+F(n-2)

斐波那契递归树与重复子问题

选择一个 n,观察递归树怎样展开;同一个 F(k) 出现多次时会被高亮,再和自底向上的表格法逐项对照。

递归树

每个圆点是一次函数调用;黄色表示同一个子问题被反复调用。

根问题 重复子问题 只出现一次

自底向上的表格法

从 F(0) 和 F(1) 开始,每个 F(k) 只保留一次,后面的项直接取表中已有结果。

递归树:15 次调用 相同子问题会重新展开。
表格法:6 个表格项 每个 k 只计算并保存一次。

调用次数统计

条形越长,说明这个子问题在递归树中被遇到越频繁。