Bóna · 枚举与解析组合学导论 · 附录 附录:数学归纳法
A.2 强归纳法Strong induction
本页为译文 + 高中讲解合一:黑色正文为忠实翻译;彩色框(目标 / 例 / 分步推演)与配图为面向高中生的详解,逐步推演、举例、画图,不用比喻。
有时候,只知道一条命题“今天”成立,并不足以推断它“明天”仍然成立;有时我们需要知道这条命题“到今天为止的每一天”都成立,才允许我们作出这样的推断。类似地,有时我们需要知道一条命题对所有满足 \(k\le n\) 的值都成立,才能推断它对 \(n+1\) 也成立。如果情况确实如此,且该命题在 \(n=1\) 时成立,那么它必定对所有的 \(n\) 都成立。事实上,由它在 \(n=1\) 时成立,可推出它在 \(n=2\) 时成立,因为 \(1\) 是唯一一个小于 \(2\) 的正整数。接着,由于命题在 \(n=1\) 和 \(n=2\) 时都成立,它在 \(n=3\) 时成立;再由于它在 \(n=1\)、\(n=2\) 和 \(n=3\) 时都成立,它在 \(n=4\) 时成立;如此继续下去。
这种使用一个更强的归纳假设来对所有 \(n\) 证明命题的方法,称为强归纳法(method of strong induction)。
本节目标把“普通归纳法”升级成“强归纳法”:当证明 \(n+1\) 的情形时,普通归纳只允许借用紧挨着的前一项(\(n\) 成立),而强归纳允许同时借用前面所有项(\(1,2,\dots,n\) 全都成立)。当一个量是“由它前面全部的项一起决定”的时候,就必须用强归纳法。
普通归纳与强归纳的区别
两种方法的“起步”一模一样:都要先验证 \(n=1\)。区别只在“归纳步”里允许使用什么前提。
- 普通归纳的归纳假设:“命题对 \(n=k\) 成立”,只借用一项,用它去证 \(n=k+1\)。
- 强归纳的归纳假设:“命题对所有 \(k\le n\) 都成立”,可同时借用前面全部的项,用它们去证 \(n+1\)。
- 强归纳之所以照样有效,是因为这一长串推断可以从 \(n=1\) 逐格自动接力下去:\(\{1\}\Rightarrow 2\),\(\{1,2\}\Rightarrow 3\),\(\{1,2,3\}\Rightarrow 4\),每一格都用上了它前面已经确立的全部结论。
一个必须用强归纳的例子
例 A.2 设 \(a_0=1\),并且当 \(n\ge 1\) 时令
\[\tag{A.4}a_n=\sum_{i=0}^{n-1}2a_i.\]
证明:对所有正整数 \(n\),都有 \(a_n=2\cdot 3^{\,n-1}\)。
为什么这里非用强归纳不可看公式 (A.4):\(a_n\) 是把它前面所有的项 \(a_0,a_1,\dots,a_{n-1}\) 各乘 \(2\) 再全部加起来得到的。要算 \(a_{n+1}\),就要用到 \(a_0\) 到 \(a_n\) 全部的值——只知道紧挨着的 \(a_n\) 根本不够,所以必须采用“所有 \(k\le n\) 都成立”的强归纳假设。
先用几个具体数字感受一下这个数列,确认要证的公式确实对:
证明.
- 初始步. 当 \(n=1\) 时,公式 (A.4) 给出 \(a_1=2\cdot a_0=2\),与待证公式 \(2\cdot 3^{\,1-1}=2\cdot 3^0=2\) 一致。
- 归纳步. 设命题对所有 \(k\le n\) 都成立(这就是强归纳假设:\(a_k=2\cdot 3^{\,k-1}\) 对 \(1\le k\le n\) 全部成立)。那么由 (A.4) 计算 \(a_{n+1}\): \[ \begin{aligned} a_{n+1}&=\sum_{k=0}^{n}2a_k\\ &=2\Big(1+2\cdot\sum_{k=1}^{n}3^{\,k-1}\Big)\\ &=2+4\cdot\sum_{k=1}^{n}3^{\,k-1}\\ &=2+4\cdot\frac{3^{\,n}-1}{2}\\ &=2\cdot 3^{\,n}. \end{aligned} \] 于是命题对 \(k=n+1\) 也成立。
把上面那串等式一行一行讲清楚“每一步为什么这么写”:
- 第一行:直接抄定义 (A.4),注意求和上限从 \(n-1\) 变成 \(n\)(因为现在算的是 \(a_{n+1}\))。
- 第二行:把 \(k=0\) 这一项单独拎出来——\(2a_0=2\cdot 1\);其余 \(k=1,\dots,n\) 这些项,每一个都用强归纳假设替换成 \(a_k=2\cdot 3^{\,k-1}\),于是 \(2a_k=2\cdot 2\cdot 3^{\,k-1}\),提出公因子后写成 \(2\big(1+2\sum_{k=1}^{n}3^{\,k-1}\big)\)。这一步正是“非强归纳不可”的地方:它一次性用掉了 \(a_1\) 到 \(a_n\) 的全部结论。
- 第三行:把外层的 \(2\) 乘进括号,得到 \(2+4\sum_{k=1}^{n}3^{\,k-1}\)。
- 第四行:求和 \(\sum_{k=1}^{n}3^{\,k-1}=3^0+3^1+\dots+3^{\,n-1}\) 是首项 \(1\)、公比 \(3\) 的等比数列,其和等于 \(\dfrac{3^{\,n}-1}{3-1}=\dfrac{3^{\,n}-1}{2}\)。
- 第五行:代入并化简 \(2+4\cdot\dfrac{3^{\,n}-1}{2}=2+2(3^{\,n}-1)=2+2\cdot 3^{\,n}-2=2\cdot 3^{\,n}\)。
- 最后核对:待证公式在 \(n+1\) 处应给出 \(2\cdot 3^{\,(n+1)-1}=2\cdot 3^{\,n}\),与算得的 \(a_{n+1}\) 完全吻合。证毕。
用 n=3 实地验算归纳步 取 \(n=3\),看看归纳步是怎样推出 \(a_4\) 的。强归纳假设此时是 \(a_1=2,\ a_2=6,\ a_3=18\)(前面全部已知)。于是
\[a_4=2(a_0+a_1+a_2+a_3)=2(1+2+6+18)=2\cdot 27=54=2\cdot 3^3.\]
而公式预测 \(2\cdot 3^{\,4-1}=2\cdot 27=54\),一致。可见推出 \(a_4\) 时,\(a_1,a_2,a_3\) 一个都不能少。
归纳法的种种变体
归纳法有许多变体。\(n\) 允许取的最小值可以不是 \(1\),这时初始步需要作相应的修改;也可以有多个变量。如果读者此前未做过归纳证明,鼓励读者查阅本附录开头提到的参考文献,并多加练习。
即时自测
- 仍用例 A.2 的数列,直接按定义 (A.4) 算出 \(a_5\)(先用 \(a_0,\dots,a_4\) 求和),再用公式 \(2\cdot 3^{\,n-1}\) 验证两者相等。
- 在例 A.2 的证明里,如果只假设“命题对 \(n=k\) 成立”(普通归纳的单项假设),第二行的那一步还能照样写出吗?说明为什么这正是必须用强归纳的原因。
- 设 \(b_1=1\),且当 \(n\ge 2\) 时 \(b_n=\sum_{i=1}^{n-1}b_i\)。先算出 \(b_2,b_3,b_4,b_5\),再猜出一个关于 \(b_n\)(\(n\ge 2\))的封闭公式,并用强归纳法证明它。
返回 全书目录