书里提到数学研究的一个策略, 对于一个已经证明的定理, 通过想方设法扩张其证明步骤中的条件「边界」, 也许可以把定理从一个特殊形式扩展到普遍形式. 就像写程序库一样, 总希望写出来的东西能尽可能满足各种不同参数下的需求, 虽然在软件行业这么干往往会把自己玩死...
比如看看费马平方和定理第四步的结论 (请一定看完前四步证明, 后文的内容均是修改此证明)
- 对于互素的任意整数 a 和 b, a2 + b2 的每一个因子也都能表示为两个整数的平方和的形式
要扩展这个定理的话, 可以从多个不同角度出发, 对于两个整数平方和成立, 对于三个整数平方和是否成立; 或者, 本文将采取的方式如下
- 给定正整数 v, u, 对于互素的任意整数 a 和 b, v * a2 + u * b2 的每一个因子也都能表示为 v * p2 + u * q2 的形式
第一步用到了名字巨长的恒等式, 这个等式说两个平方和的乘积还是一个平方和, 在代数学中有个术语叫封闭性. 比如整数集里面任取两个元素出来进行加减乘运算, 结果还是整数 (除就不一定了), 那么加减乘这三种运算 (三个二元函数) 对于整数集就是封闭的. 类似的, 上述恒等式说明在所有能表示成两个整数平方和的数的集合内, 乘法是封闭的.
那么这个结论能否运用到形如 v * a2 + u * b2 的整数呢? 很快就能验证
(v * a2 + u * b2) * (v * c2 + u * d2)
= v2 * (ac)2 + vu * ((ad)2 + (bc)2) + u2 * (bd)2
= v2 * (ac)2 + u2 * (bd)2 + 2 * uv * abcd
+ vu * ((ad)2 + (bc)2) - 2 * uv * abcd
= (vac + ubd)2 + vu(ad - bc)2
噢等等, 我觉得这个扩张还可以抢救一下, 只要作出一点小牺牲, 把内容收缩一点就好: 令 v, u 之一等于 1, 也就是说变成比如
- 给定正整数 u, 对于互素的任意整数 a 和 b, a2 + u * b2 的每一个因子也都能表示为 p2 + u * q2 的形式
(a2 + u * b2) * (c2 + u * d2)
= (ac + ubd)2 + u(ad - bc)2
= (ac - ubd)2 + u(ad + bc)2
虽然 p2 + u * q2 这么个不对称的形式肯定会让强迫症加数学美学狂热者想要砸显示器, 不过也没办法, 将就着到第二步:
- 给定整数 u, 对于任意整数 a, b (不要求互素), 如果形如 (a2 + u * b2) 的整数能被可表示为 (p2 + u * q2) 的素数整除, 则其商也能表示为以上形式
答案将在三行之后开始揭晓.
第一行. 回头再看一眼命题第一句, 是「给定任意正整数 u」. 这个正是很重要的, 虽然第一步恒等式对于任意整数 u 都能成立, 但若 u 不是正数, 这一步证明会有一个不严格的地方, 而第四步中若 u 不是一个正数则完全是硬伤.
第二行. 来个简单有效的反例, 在 u = -1 时, 随便令 a 和 b 为两个不同的奇素数, 显然 a2 - b2 会是个偶数, 能被 2 整除, 但 2 没法写成平方差的形式.
第三行. 具体为什么, 到最后一步再说吧. 接下来继续证明.
因为 (p2 + u * q2) 能整除 (a2 + u * b2), 那么它肯定能整除 u * q2 * (a2 + u * b2), 从而也就能整除
u * q2 * (a2 + u * b2) - a2 * (p2 + u * q2)
= (ubq)2 - (ap)2 = (ubq + ap) * (ubq - ap)
假设整除的是 (ubq + ap), 那么
(a2 + u * b2) * (p2 + u * q2) = (ap + ubq)2 + u(aq - bp)2
(a2 + u * b2) / (p2 + u * q2) = ((ap + ubq) / (p2 + u * q2))2 + u((aq - bp) / (p2 + u * q2))2
似乎又糟糕了, u((aq - bp) / (p2 + u * q2))2 是一个整数并不能说明 ((aq - bp) / (p2 + u * q2)) 是一个整数, 有一种可能是 (p2 + u * q2) 恰能整除 u, 而不是能整除 (aq - bp), 使得这一项最终为整数; 如果是这样, 第二项的 u 这个因子就会被削减得小一点, 因而形式并不成立.
万幸地是, 很显然 u 怎么可能被比 u 自己还大的素数 (p2 + u * q2) 整除? (p, q 必须全不为 0, 否则此数不是一个素数, 因此它肯定比 u 大; 但是刚才说了, 在 u 为负数的情况下则不然, 一个例子是, 当 u = -2 时, p, q 分别取 p = 2, q = 1, 代入得 2 * 2 - 2 * 1 * 1 = 2 可以整除 u) 所以右边的第二项确实是满足要求的.
刚才说到, (p2 + u * q2) 至少能整除 (ubq + ap) 与 (ubq - ap) 两者之一, 并在假设能整除前者时命题成立. 现在还得证明能整除后者的情况. 若这种情况发生, 则采用另一种表示方式
(a2 + u * b2) * (p2 + u * q2) = (ap - ubq)2 + u(aq + bp)2
(a2 + u * b2) / (p2 + u * q2) = ((ap - ubq) / (p2 + u * q2))2 + u((aq + bp) / (p2 + u * q2))2
第三步: 如果一个能表示为 (a2 + u * b2) 的整数被另一个不能表示为 (a2 + u * b2) 的整数整除, 则它们的商也必有一个不能表示为 (a2 + u * b2) 的因子.
这一步是反证法, 没什么好说的, 跟 Wiki 上证明的说辞类似.
激动人心的最后一步终于来了.
先剧透一下, 其实 u 除了 1 之外, 只有 2 能过这一步, 也就是说到头来只多证明了所有形如 (a2 + 2 * b2) 的整数的所有因子有同样形式...
如果各位看官直觉敏锐, 早先也许就能想到了, 类似 u = -1 的情况, 在 u > 2 时, 如果 (a2 + u * b2) 是个偶数, 因子 2 是不能写成 (a2 + u * b2) 的形式的 orz..
不过 u=3 的时候能证明一个特性命题, 虽然不那么完美. 后述.
最后一步其实也没什么花样, 跟 Wiki 证明一样, 设因子为 x, 且
a = mx + c
b = nx + d
zx = a2 + u * b2 = Ax + c2 + u * d2 (中略)
<= (x/2)2 + u * (x/2)2 = x2 * (1 + u) / 4
z <= x * (1 + u) / 4
最后说一下 u=3 时的特别情况.
还是回到刚才的不等式的右边, 如果 x 是奇数的话, c 和 d 都不可能正好等于分数 (x / 2), 因此不等式的符号就可以由小于等于换成严格小于. 此时无穷下降法成立. 也就是说, 对于互素整数 a 和 b, 所有形如 (a2 + 3 * b2) 的奇数因子都能写成同样形式.
如果 a, b 是一奇一偶, (a2 + 3 * b2) 是一个奇数, 这样其所有因子都是奇数.
如果 a, b 是两个奇数, 容易证明 (a2 + 3 * b2) 能被 4 整除, 但不可能被 8 整除. 这造成了一个有趣的结论: 该数的所有奇数因子, 以及能被 4 整除的因子都能写成此形式 (因为虽然 2 不能表示成 p2 + 3 * q2, 但是代入 p = q = 1 却正好等于 4).