竞赛数学与解题
反证法
假设结论的反面成立,并由此推出矛盾的证明方法。
直观假设相反,然后看它崩溃
假设一位侦探想证明嫌疑人曾在犯罪现场。侦探不去寻找直接证据,而是说:"假设嫌疑人没有在那里。那么他就不可能留下这个只有他才能留下的脚印。但脚印就在这里——矛盾。所以嫌疑人一定在那里。"这正是反证法的形态:要证明命题 P,先假设其反面 ¬P,忠实地推出逻辑后果,并指出它们与已知为真的事实相冲突。由于错误的假设是导致不可能结论的唯一途径,¬P 必定为假,因此 P 成立。
曲线 y=x2−2 恰好在 x=2 处穿过零点;下面的反证法证明表明这个交点绝不可能是两个整数之比。中学反证法证明的逻辑形态
定义: 反证法
要用反证法证明命题 P,先假设 ¬P(P 的反面),然后仅用有效的逻辑步骤和已确立的事实,由此推出某个命题 Q 及其否定 ¬Q。由于 Q∧¬Q 永远为假,导致它的假设 ¬P 必定为假,因此 P 为真。
¬P⇒(Q∧¬Q) 这里 P 是我们想证明的命题,Q 是任意一个我们能从 ¬P 同时推出其真与假的命题——通常 Q 是一个已知为真的事实(例如"gcd(p,q)=1"),而我们无意中推出了它的否定。一旦确立 ¬P⇒(Q∧¬Q) 且 Q∧¬Q 不可能,逻辑就迫使 ¬P 本身不可能成立,即 P 成立。
2=qp,gcd(p,q)=1 第二行是用来开启"2 是无理数"这一经典证明的具体假设:这里 p 与 q 是满足 q=0 的整数,要求 gcd(p,q)=1 意味着分数 qp 已写成最简形式。下文完整给出的证明表明,这个假设会迫使 p 与 q 都是偶数,与 gcd(p,q)=1 矛盾。
证明策略比较| 方法 | 假设 | 目标 |
|---|
| 直接证明 | P | 用已知事实由 P 直接推出 Q |
| 反证法 | ¬P | 从 ¬P 同时推出 Q 与 ¬Q |
| 无穷递降法 | 存在一个最小的反例 | 构造一个严格更小的反例,与最小性矛盾 |
大学两个经典反证法证明
2 是无理数,即不存在满足 q=0 的整数 p,q 使得 2=qp。
为什么成立?
没有直接的代数方法能证明一个数不是整数之比,因为那意味着要检验无穷多个分数;反证法通过假设这样一个最简分数存在,并从这单一假设中挖出一个不可能的奇偶性事实,巧妙地绕开了这一点。
证明
为反证,假设 2 是有理数。那么可以写成 2=qp,其中 p,q 为整数且 q=0,通过约去公因子可设 gcd(p,q)=1(分数已为最简形式)。
两边平方得 2=q2p2,故 p2=2q2。这意味着 p2 是偶数。由于奇数的平方是奇数,p 本身必须是偶数;设 p=2k,其中 k 为某个整数。
代回原式,(2k)2=2q2,即 4k2=2q2,化简为 q2=2k2。这意味着 q2 是偶数,由同样的推理 q 也必须是偶数。
但现在 p 与 q 都是偶数,故 2 同时整除它们,这与假设 gcd(p,q)=1 矛盾。这一矛盾表明最初的假设——2 可以写成 qp——必定为假。因此 2 是无理数。
素数有无穷多个。
为什么成立?
不可能直接列出无穷多个素数来验证这一断言,因此反证法转而假设存在一个有限的完整列表,并恰好从这个列表出发构造出一个数,揭露该列表其实并不完整。
证明
为反证,假设素数只有有限个,设 p1,p2,…,pn 是它们的完整列表。
考虑数 N=p1p2⋯pn+1。由于 N>1,它必有至少一个素因子,记为 p(大于 1 的每个整数都有素因子)。
由假设,p1,…,pn 是所有素数的列表,故对某个 i,p 必等于 pi。特别地,p 整除乘积 p1p2⋯pn。
但 p 也整除 N=p1p2⋯pn+1。若 p 同时整除 p1p2⋯pn 与 N,则 p 整除它们的差:p∣(N−p1p2⋯pn)=1。
没有任何素数能整除 1,因为每个素数都大于 1。这是矛盾。因此最初的假设——素数只有有限个——必定为假,所以素数有无穷多个。
大学实际应用与典型例题
反证法是远超竞赛数学的一种实用工具:计算机科学家用它证明不可能性结果(没有算法能解决停机问题,最坏情况下没有比较排序能超越 nlogn),密码学家依靠它论证破解某方案将意味着解决一个被认为困难的问题,工程师则用它来论证安全攸关的不可能性断言("如果压力超过此值,密封件就会失效,但密封件完好无损,所以压力从未超过此值")。无穷递降法是一种假设存在最小反例并将其缩小的变体,在数论和算法终止性论证中尤为常见。下面两个例子展示了反证法与无穷递降法在具体组合问题中的应用。
例题: 残缺棋盘:铺砖中的反证
一个 8×8 的棋盘去掉两个相对的角上的方格,剩下 62 个方格。证明这个棋盘不能被 31 张骨牌完全覆盖,每张骨牌恰好覆盖 2 个相邻方格。
解答
为反证,假设存在这样一种由 31 张骨牌构成的铺法。
按通常的黑白交替方式给棋盘染色,则有 32 个黑格和 32 个白格。每张骨牌由于覆盖两个相邻方格,总是恰好覆盖一个黑格和一个白格(相邻方格颜色总是相反)。
因此,使用 31 张骨牌的铺法将恰好覆盖 31 个黑格和 31 个白格——共 62 格,按颜色均分。
然而,标准棋盘上相对的两个角总是同一种颜色(这是标准染色方式的性质)。去掉它们会去掉某一种颜色的 2 个方格,剩下该颜色 30 格,另一种颜色 32 格。
这意味着棋盘实际上是某一种颜色 30 格、另一种颜色 32 格,无法被任何铺法分成 31 与 31。这与第三步的计数(每种颜色恰好 31 个)相矛盾,所以假设的铺法不可能存在。
例题: 无穷递降法:a2=2b2 没有非平凡解
用无穷递降法证明方程 a2=2b2 没有正整数解 a,b。
解答
为反证,假设存在正整数解。在所有正整数解 (a,b) 中,选取 b 尽可能小的一个——这是可行的,因为正整数具有良序性(任何非空正整数集合都有最小元)。
由 a2=2b2,右边是偶数,故 a2 是偶数,从而 a 本身也是偶数(奇数的平方是奇数)。设 a=2a1,其中 a1 为某正整数。
代入得 (2a1)2=2b2,即 4a12=2b2,故 b2=2a12。由同样的推理,b2 是偶数,故 b 是偶数;设 b=2b1。
再次代入,2a12=(2b1)2=4b12,故 a12=2b12。这意味着 (a1,b1) 也是同一方程 a12=2b12 的正整数解,且由 b=2b1 可知 b1=b/2<b。
这与选取 (a,b) 为 b 最小的解相矛盾,因为 (a1,b1) 是第二个坐标更小的解。这一矛盾表明 a2=2b2 不可能存在正整数解。
反证法通过假设 ¬P 并推出以下哪种形式的矛盾来证明命题 P:
在 2 是无理数的经典证明中,假设 2=qp 为最简分数并平方后得到 p2=2q2。关于 p 立即得出的结论是什么?
在欧几里得的证明中,假设素数 p1,…,pn 是所有素数,数 N=p1p2⋯pn+1 导致矛盾的原因是:
对于去掉两个相对角的残缺棋盘,骨牌铺砖证明中的矛盾产生的原因是铺砖需要: