Tₙ x²=x+1 n log n Akra·Bazzi
数学之旅 · CHAPTER 22 · 全书终章

递归式

Recurrences · Finale

一条递归式藏着数列的全部未来,但不解开来它什么也不说。猜测验证需要灵感,代入法只要纪律;爬楼梯数出 Fibonacci,特征方程一锤定音;Merge Sort 的 n log n − n + 1,最后由 Akra-Bazzi 公式一积分收工——全书的机器在这装配完成。

⏱ 约 70 分钟🧩 7 个互动装置📖 原书第 931–960 页
22.1

汉诺塔:guess-and-verify 与 plug-and-chug

The Towers of Hanoi

猜测验证:看数列 1, 3, 7, 15, 31, 63 猜 Tₙ = 2ⁿ−1,再用归纳一锤定音(命题 22.1.1)——递归式与归纳证明结构天然同构:基例对第一行、归纳步对第二行。上界陷阱(22.1.1):想证更"漂亮"的 Tₙ ≤ 2ⁿ?归纳在第 2·2ⁿ⁻¹ + 1 = 2ⁿ+1 ⋠ 2ⁿ 处当场翻车(书里标红 "Uh-oh!")——弱假设撑不起弱结论,归纳常常需要更强的假设。

代入法(plug-and-chug)三步走:① 反复"代入-整理"直到出现模式(别过度化简!);② 再做一轮验证模式(k → k+1 时公式形状不变,等于顺手完成了归纳);③ 取 k = n−1 用已知的首项收尾。

互动 ①

⚙️ Plug-and-Chug 机器:三道递归逐行展开

灰字 = plug(代入递归式)。展开到模式出现时金色高亮,最后一行代入首项收工。
互动 ②

🪤 上界陷阱实验台:弱假设撑不起弱结论

22.1.1 的 "Uh-oh!" 现场:想用归纳证 Tₙ ≤ 2ⁿ(上界真命题),归纳步却当场翻车——除非把假设加强成 Tₙ ≤ 2ⁿ − 1。

选一个假设,看归纳步走不走得通(Tₙ = 2Tₙ₋₁ + 1,T₁ = 1)。
22.2

Merge Sort:分治递归的出道作

Merge Sort

对半拆、各自排好、线性归并。n 为 2 的幂时最大比较次数满足:

T₁ = 0, Tₙ = 2T_{n/2} + n − 1  ⟹ Tₙ = n log n − n + 1

猜不好(0, 1, 5, 17, 49 看不出规律),代入法一锤定音。为什么归并只要 n−1 次?每出一个人至少比一次、最后一人免费——n 个数 n−1 次。

互动 ③

🔀 Merge Sort 演练台:数一数比较

比较次数 0 / 理论上限 17
对 8 个数:上限 8·log₂8 − 8 + 1 = 17。数字越小越先出列——归并就是"两队排好队,交替出列较小者"。
22.3

线性递归:爬楼梯爬出 Fibonacci

Linear Recurrences

爬 n 阶楼梯,每次上一阶或跳两阶,几种爬法?f(n) = f(n−1) + f(n−2)——Fibonacci(书中边界 f(0)=f(1)=1,所以 f(4)=5)。解法六百年没人找到,如今一小时学会:猜 f(n)=xⁿ,除出特征方程 x² = x + 1,两根 φ 与 ψ;线性组合定理(22.3.1)说解空间是二维平面;两个边界条件解出 s, t——Binet 公式再临(第 16 章的它又回来了)。

22.3.2 · 一般齐次线性递归说明书

f(n) = a₁f(n−1)+⋯+a_d f(n−d):写出特征方程 x^d = a₁x^{d−1}+⋯+a_d。非重根 r 贡献一项 crⁿ;k 重根贡献 rⁿ, nrⁿ, …, n^{k−1}rⁿ。全部线性组合仍是解,边界条件定常数。

互动 ④

🪜 特征方程求解器:f(n)=a·f(n−1)+b·f(n−2)

互动 ⑤

🪗 爬楼梯枚举器:数出 Fibonacci(22.3.1)

每次上一阶(1)或跳两阶(2),爬到第 n 阶。枚举全部路径(n ≤ 7 逐条列出),条数 f(n) 按 f(0)=f(1)=1 正是 Fibonacci——递归式"长"出数列。

22.3.3

非齐次五步法:那个多余的 +1

Inhomogeneous Recurrences

汉诺塔的 +1 不是齐次项——五步收拾它:① 令 g(n)=0 得齐次递归求根;② 写齐次解;③ 猜一个特解(按 g(n) 的形状猜:常数→常数不行就升阶多项式;指数→c·3ⁿ 不行就乘 n 再试);④ 齐次 + 特解 = 通解;⑤ 边界条件解常数。书中变体:大盘耗时正比于盘号,f(n)=2f(n−1)+n → f(n) = 2·2ⁿ − n − 2——和尚们要多干一倍的活。

📋
原书还附了一页"线性递归求解速查卡":特征方程 → 齐次解 → 特解 → 通解 → 边界定常数。考试时它就是全部。
22.4

分治递归与 Akra-Bazzi 公式

Divide-and-Conquer Recurrences

Merge Sort 的 T(n) = 2T(n/2) + n − 1 不是线性的(回头找 T(n/2),半路远亲)。分治递归 T(n) = ΣaᵢT(bᵢn) + g(n) 有流水线配方——Akra-Bazzi 公式(式 22.2):先解 Σaᵢbᵢ^p = 1 定 p,再积一次分:

T(n) = Θ( n^p ( 1 + ∫₁ⁿ g(u)/u^{p+1} du ) )

Merge Sort:2·(1/2)^p = 1 → p=1;∫(u−1)/u² du = ln u → Θ(n log n)。吓人版 T(n)=2T(n/2)+(8/9)T(3n/4)+n²:p=2,积出 Θ(n² log n)。另一个惊喜:边界条件完全不影响结果——Tₙ = Θ(n log n) 对任何 T₁ 都成立。

互动 ⑥

🧮 Akra-Bazzi 试算器:三道名题流水线

🎓

终章寄语

End of the Journey

从第 1 章"什么是证明"到这里,全书的暗线其实只有一条:把大问题化小,直到基例出现——归纳证明、递归算法、递归式求解,是同一个思想的三副面孔。现在 22 章全部装配完毕:命题与量词是语法,集合与关系是名词,归纳与良序是引擎,数论给了你 RSA,图论给了你网络与平面,计数给了你扑克与魔术,概率给了你赌场与 Google,而递归式把它们全部串成闭环(谁还记得第 16 章已经解过一次汉诺塔?)。

原书到这里就停了。剩下的路——算法、复杂度、机器学习——用的全是这 22 章的语言。祝旅途愉快,常回来看看这些还能玩的装置。

⚔️

习题实战

Verify-and-Solve

终章核查题:给定递归式与候选闭式,代入前 6 项判定真假。

互动 ⑦

✅ 闭式核查器:谁真的是解?

三道候选,各判"是 / 不是"对应递归式的(正确)闭式——判据:代回递归式验证 + 边界条件吻合。

进度 0 / 3
⚖️

终局自测

Final Check

六题,覆盖全章——也是全书的最后一场考试。

🥚

彩蛋与课后挑战

Easter Eggs & Problems
六世纪的悬案与 φ 的浪漫(22.3.1)

Fibonacci 递归挂了将近六百年没人解——难就难在解是 φⁿ 这种无理数的组合,而 Fibonacci 数明明全是整数。Binet 公式里 √5 处处出现又处处抵消。f(20)/f(19) = 10946/6765 = 1.618033998…——相邻 Fibonacci 数之比奔向黄金分割;φ²⁰/√5 = 6765.000029…,离最近的整数只差十万分之三。

课后挑战(出处逐条标注)
  • 22.1 节代入法(正文方法):用代入法解 T(n) = 2T(n/2) + 3(提示:答案是 Θ(n))。
  • 22.3.3 正文例题:汉诺塔变体 f(n) = 2f(n−1) + n:完整走一遍五步法,验证 f(n) = 2·2ⁿ − n − 2。
  • 自拟练习:爬楼梯变体:每次可以迈 1、2 或 3 阶——写出递归、猜出增长阶(仿照 22.3 正文)。
本章路线图
22.1 · 汉诺塔两把钥匙22.2 · Merge Sort22.3 · 爬楼梯与特征方程 22.3.3 · 非齐次五步法22.4 · Akra-Bazzi🎓 · 终章寄语 ⚔️ · 习题实战⚖️ · 终局自测🥚 · 彩蛋与挑战