数学 / 实数 · 从数轴的空位到浮点的间距 / 无理数:反证、递降与超越 待审核 3 / 5
√2 · 有理根定理

无理数:反证、递降与超越

有理数的小数展开必为有限或循环(见 有理数与小数展开),所以要证一个数不是有理数,等价于证它的展开无限且不循环。但直接盯着小数位看不出结果——那是无穷多位的性质。可行的路线是反过来:假设它能写成分数,再把这个假设推到矛盾。

本页给 2\sqrt 2 两条互相独立的反证,再由有理根定理把结论一次推广到一大类数,最后交代「无理」之下还有一层更细的分层。

1 · 最简分数的奇偶矛盾

定理 1.1 2\sqrt 2 不是有理数。

证明 反设 2=p/q\sqrt 2 = p/q,其中 ppqq 为正整数且 gcd(p,q)=1\gcd(p, q) = 1(任何分数都能约到这一步)。两边平方得 p2=2q2p^2 = 2q^2,故 p2p^2 为偶数。整数的平方为偶则该整数为偶,故 pp 为偶,记 p=2kp = 2k。代回得 4k2=2q24k^2 = 2q^2,即 q2=2k2q^2 = 2k^2,同理 qq 也为偶。ppqq 都能被 22 整除,与 gcd(p,q)=1\gcd(p, q) = 1 冲突。反设不成立。∎

整条链只用到一条引理:整数平方为偶则该整数为偶。它本身由「奇数的平方是奇数」直接给出,(2m+1)2=4m2+4m+1(2m+1)^2 = 4m^2 + 4m + 1

图 1-1 · 定理 1.1 的六步反证:反设最简分数、平方、推出 pp 为偶、推出 qq 也为偶、与最简性矛盾、否定反设。可逐步展开或一次全开。

这条证明的支点是「已经约到最简」这个前提。换个说法:假设存在最小的那个解,再造出更小的解。下一节把这个说法单独拿出来做成一条不依赖奇偶的证明。

2 · 无穷递降

定理 2.1 方程 p2=2q2p^2 = 2q^2 没有正整数解。

证明(p,q)(p, q) 是一个正整数解。直接验算得 (2qp)22(pq)2=2q2p2=0(2q - p)^2 - 2(p - q)^2 = 2q^2 - p^2 = 0,故 (2qp,pq)(2q - p, p - q) 也是解。由 p2=2q2p^2 = 2q^2q<p<2qq < p < 2q,从而 0<pq<q0 < p - q < q:新解的第二个分量严格小于原来的。从任一解出发无限做下去,得到一列严格递减的正整数,而正整数集里没有无限递减列,矛盾。∎

这条论证有一个不用代数的读法。qqpp 若是某个等腰直角三角形的直角边与斜边,那么在斜边上截出长度 qq 的一段并作垂线,得到的小三角形仍是等腰直角三角形,直角边 pqp - q、斜边 2qp2q - p,边长仍是整数。整数边长的等腰直角三角形因此可以一直缩小下去,而边长是正整数,缩不了几轮就撞底。

图 2-1 · 共用直角顶点的一组嵌套等腰直角三角形,右侧表格给出每一级的边长与 p22q2p^2 - 2q^2。可切换起点并逐级下降,观察这个差值只在 +1+11-1 之间来回。

真正的解并不存在,所以要把递降真的跑一遍,起点只能取 Pell 方程 p22q2=±1p^2 - 2q^2 = \pm 1 的解,也就是「差一点点」的整数三角形。实跑 descentChain(99, 70) 的链条是 99/7041/2917/127/53/21/199/70 \to 41/29 \to 17/12 \to 7/5 \to 3/2 \to 1/1,链长 66 即触底(再降一次 pqp - q 就为 00),而 p22q2p^2 - 2q^2 一路在 +1+11-1 之间交替,绝对值始终是 11。递降的映射把这个差值取了相反数,所以非零的差值永远回不到 00——它把「无解」这件事变成了一条可以逐级核对的不变量。起点换成 1393/9851393/985 时链长 99

3 · 有理根定理

上面两条证明都只处理 2\sqrt 2。要一次性覆盖 3\sqrt 35\sqrt 523\sqrt[3]{2},得换一件更通用的工具。

定理 3.1(有理根定理) 设整系数多项式 anxn++a1x+a0a_n x^n + \dots + a_1 x + a_0an0a_n \ne 0a00a_0 \ne 0)有有理根 p/qp/q,其中 gcd(p,q)=1\gcd(p, q) = 1。则 pa0p \mid a_0qanq \mid a_n。特别地,首一多项式(an=1a_n = 1)的有理根必为整数。

证明 只需两次通分。把 x=p/qx = p/q 代入并乘以 qnq^n,得 anpn+an1pn1q++a0qn=0a_n p^n + a_{n-1}p^{n-1}q + \dots + a_0 q^n = 0。除首项外每一项都含因子 qq,故 qanpnq \mid a_n p^n;由 gcd(p,q)=1\gcd(p, q) = 1qanq \mid a_n。除末项外每一项都含因子 pp,同理 pa0p \mid a_0。∎

n\sqrt n 是首一多项式 x2nx^2 - n 的根,故它若是有理数就必是整数,即 nn 必为完全平方数。nn 不是完全平方数时 n\sqrt n 无理,一句话覆盖全部情形;11100100 里完全平方数只有 1010 个,其余 9090 个数的平方根一律无理。同理 x32x^3 - 2 的有理根只能是 ±1\pm 1±2\pm 2,逐个代入都不为零,故 23\sqrt[3]{2} 无理。

候选表的实际用途是把搜索范围从无穷多个有理数压到有限个。2x33x28x+122x^3 - 3x^2 - 8x + 12 的常数项 1212 有六个正因数、首项 22 有两个,去重后候选共 1616 个;逐个用整数运算代入(rationalRoots 走的是 BigInt,不经浮点,免得 101610^{-16} 量级的残差被当成零),命中三个:2-23/23/222

4 · 代数数与超越数

定义 4.1(代数数与超越数) 若一个实数是某个非零整系数多项式的根,称它为代数数;否则称为超越数。

2\sqrt 2x22x^2 - 2 的根,23\sqrt[3]{2}x32x^3 - 2 的根,两者都是无理的代数数。有理数 p/qp/qqxpqx - p 的根,也是代数数。eeπ\pi 则不是任何整系数多项式的根:Hermite 于 1873 年证明 ee 超越,Lindemann 于 1882 年证明 π\pi 超越(后者顺带否掉了尺规化圆为方)。这两条本页只陈述结论。

第一个被证明的超越数不是 ee 也不是 π\pi,而是 Liouville 于 1844 年显式写出来的一个数:

L=n110n!=0.110001000000000000000001000L = \sum_{n \ge 1} 10^{-n!} = 0.110001000000000000000001000\dots

小数点后只在第 1122662424120120 位上是 11,其余全为 00,下一个 11 要等到第 720720 位。构造的用意在于制造「好得过分」的有理逼近:把 LL 截断到第 k!k! 位,得到分母 q=10k!q = 10^{k!} 的分数,误差不超过下一项的两倍,即 10(k+1)!10^{-(k+1)!} 量级,也就是 q(k+1)q^{-(k+1)}。而代数数的逼近有硬上界——次数为 dd 的代数无理数与任何分母为 qq 的分数之间的距离都超过某个常数乘 qdq^{-d}(Liouville 定理)。LL 的逼近阶随 kk 无限增大,超过任何固定的 dd,故它不可能是代数数。

对照 2\sqrt 2 就能看出「好得过分」的尺度。2\sqrt 2 的连分数渐近分数 1/11/13/23/27/57/517/1217/1241/2941/2999/7099/70 是它最好的有理逼近,误差量级恰是 q2q^{-2}:实测 q2p/q2q^2 \cdot |p/q - \sqrt 2| 稳定收敛到 1/(22)=0.3535533905931/(2\sqrt 2) = 0.353553390593,不再往下走。二次代数数只能做到 q2q^{-2},而 LL 的截断分数能做到 q6q^{-6}q7q^{-7},要多少有多少。

警示 · 上一段那个 0.3535533905930.353553390593 是换了算路才量准的。最初的实现直接算 p / q - Math.SQRT2,第八项之前两条算路一致,第十二项(19601/1386019601/13860)就偏到 0.353553560.35355356,第二十一项给出 0.66210.6621,接近真值的两倍;到第二十二项 131836323/93222358131836323/93222358p / qMath.SQRT2 已经是同一个 double,差值恰为 00,整个量塌成零。原因是两个都以 1.414213561.41421356 开头的数相减,有效位被抵消掉。改用 Pell 方程给出的等价式 q2p/q2=1/(p/q+2)q^2 |p/q - \sqrt 2| = 1/(p/q + \sqrt 2) 之后不再相减,全程稳定,单测把两条算路并列钉住,第二十二项那个 00 也一并写进断言。

无理数之间还有一层「有多少」的差别:代数数与有理数一样是可数的,超越数则不可数,故数轴上几乎每一个点都是超越数。这条计数论证不在本系列展开,见 基数:有限、可数无限与不可数

5 · 参考文献

  1. Square root of 2. Wikipedia. 无理性的多种证明,含奇偶反证与无穷递降。https://en.wikipedia.org/wiki/Square_root_of_2
  2. Proof by infinite descent. Wikipedia. 递降法的一般形式与它在数论中的用处。https://en.wikipedia.org/wiki/Proof_by_infinite_descent
  3. Rational root theorem. Wikipedia. 定理 3.1 的陈述、证明与推论。https://en.wikipedia.org/wiki/Rational_root_theorem
  4. Liouville number. Wikipedia. Liouville 数的构造与第一例超越数。https://en.wikipedia.org/wiki/Liouville_number
  5. Transcendental number. Wikipedia. 超越数的定义,以及 eeπ\pi 超越性的证明年代。https://en.wikipedia.org/wiki/Transcendental_number