充分性证明
一、回顾通用公式
前面我们已经证明,尺规可作的正 n 边形的 n 必须满足公式:
n=2r⋅p1⋅p2…ps
其中:
- r 是任意非负整数(r≥0)。
- p1,p2,…,ps 是互不相同的费马素数(s≥0,即可以没有奇素数因子)。费马素数是可以表示为 22t+1 的素数,根据上一章的讨论,这等价于可以表示为 2m+1 的素数(m>1)
二、充分性证明
现在我们沿着高斯当年的思路来证明充分性,即证明,只要 n=2r⋅p1⋅p2…ps,这样的 n 一定可以被尺规作出。
我们不需要一次性做出正 n 边形。我们可以把它拆开。
引理:如果 A 和 B 互素(即 gcd(A,B)=1),并且我们已知如何尺规作出正 A 边形和正 B 边形,那么我们必然能作出正 AB 边形。
证明:根据裴蜀定理(见「附录3」),既然 gcd(A,B)=1,必然存在两个整数 x 和 y(可以一正一负),使得:
Ax+By=1
等式两边同除以 AB,再乘以 2π:
AB2π=xB2π+yA2π
这意味着,正 AB 边形的中心角 AB2π,可以通过正 B 边形的中心角(放大 x 倍)和正 A 边形的中心角(放大 y 倍)进行加减拼接得到。角度的加减和倍数是尺规作图最基础的操作(见第2章「尺规作图原子操作」)。
结论:对于通用的 n=2k⋅p1⋅p2⋯pr。因为 2k 以及各个费马素数 pi 之间两两互素。我们只需要证明:
- 正 2k 边形可作(这是平凡的:只需要不断的作角平分线,详见第2章「尺规作图原子操作」)。
- 对任意费马素数 p=pi,正 p 边形可作。
下面我们来集中精力解决第 2 点,即 n 为单个费马素数的情况。
三、单个费马素数的正 p 边形
设 p 是一个费马素数,p=2m+1 (m 是正整数)
求证:cos(p2π) 可以被尺规作出,即 cos(p2π) 可通过有理数的有限次加、减、乘、除和开根号得到。
「注」:本章后面的推导过程,严谨的依赖于「附录12」模 n 的原根的知识。如果想要读懂本章后面内容需要先学习「附录12」。
1. p 次分圆多项式和本原 p 次单位根
考察方程 xp−1=0,它在复数域有 p 个根,分别是 1,ζ,ζ2,⋯,ζp−1。
其中 ζ=cos(p2π)+isin(p2π)。
我们的目标是解出 ζ,从而解出 cos(p2π)。
根据因式定理,xp−1 可以分解为:
xp−1=(x−1)(x−ζ)⋯(x−ζp−1)
又因为
xp−1=(x−1)(xp−1+xp−2+⋯+x+1)
两边除以 x−1,根据多项式带余除法的结果的唯一性(见「附录1」),有
xp−1+xp−2+⋯+x+1=(x−ζ)⋯(x−ζp−1)
上面左边就是第5章介绍的 p 次分圆多项式(最小多项式),右边是分解为它的 p−1 个根的乘积形式,这 p−1 个根称为 『本原 p 次单位根』,它们就是第5章中介绍的次数和 p 互素的单位根,也就是除“1”以外的所有 p 次单位根。
比较左右 xp−2 这一项的系数,有:
1=−ζ−⋯−ζp−1
ζ+⋯+ζp−1=−1 (式 6.1)
2. “原根”的幂次生成所有本原单位根
由「附录12」中的原根知识我们知道,因为 p 是素数,存在一个整数 g (原根),满足:
- gp−1≡g0≡1(modp)
- g0,g1,⋯,gp−2 在模 p 意义下,恰好取遍 1,2,⋯,p−1 这 p−1 个数,只不过打乱了顺序。
我们把 ζ,⋯,ζp−1 按照原根的幂次排列为:
ζg0,ζg1,⋯,ζgp−3,ζgp−2
由于 p 是费马素数,上面一共有 2m 项。高斯的天才之处,在于将其不断的进行对半折叠分组。
3. 高斯对根的分组策略
我们固定上面 p−1 个根的顺序,把这 p−1 个根分为 e 组,每组 f 个。
初始步骤:当 e=1,f=p−1 时,只有一组,包含了所有根。根据 (式 6.1),这些根的和是 −1。
拆分步骤:把之前的每一组拆分为两组:原组中第 1,3,5,⋯ 个根是一组,2,4,6,⋯ 个根是另一组。这样原来的 e 组会裂变为 E=2e 组,每组长度从原来的 f 个根减少为 F=f/2 个根。我们以 p=17 为例演示这个分组步骤:
我们选择原根 g=3,相同的颜色代表分在同一个组中:
ζg0 ζg1 ζg2 ζg3 ζg4 ζg5 ζg6 ζg7 ζg8 ζg9 ζg10 ζg11 ζg12 ζg13 ζg14 ζg15
e=1
ζ1 ζ3 ζ9 ζ10 ζ13 ζ5 ζ15 ζ11 ζ16 ζ14 ζ8 ζ7 ζ4 ζ12 ζ2 ζ6
e=2 (P0,P1)
ζ1 ζ3 ζ9 ζ10 ζ13 ζ5 ζ15 ζ11 ζ16 ζ14 ζ8 ζ7 ζ4 ζ12 ζ2 ζ6
e=4 (Q0,Q1,Q2,Q3) P0=Q0+Q2,P1=Q1+Q3
ζ1 ζ3 ζ9 ζ10 ζ13 ζ5 ζ15 ζ11 ζ16 ζ14 ζ8 ζ7 ζ4 ζ12 ζ2 ζ6
e=8
ζ1 ζ3 ζ9 ζ10 ζ13 ζ5 ζ15 ζ11 ζ16 ζ14 ζ8 ζ7 ζ4 ζ12 ζ2 ζ6
假设我们已经计算出了分为 e 组时,每组根的和 Pk(0≤k≤e−1)。
Pk 组包含的元素,其指数为 gk,gk+e,gk+2e,…,gk+(f−1)e。
Pk=∑j=0f−1ζgk+je
现在我们要把它拆细一倍,分为 E=2e 组,每组长度为 F=f/2。
新分组记为 Qk(0≤k≤E−1):
Qk=∑j=0F−1ζgk+jE
仔细观察,每个旧组会被一分为二拆成两个新组:
Pk=Qk+Qk+e。
我们的目标是证明:新拆分出来的两个组 Qk 和 Qk+e 相乘,其结果一定能由上一层已知的值(即 Pv)组合而成。这样,只要我们求出了所有的 Pv,那么 Qk+Qk+e 和 QkQk+e 就都知道了,然后利用二次方程的韦达定理,就可以求出 Qk 和 Qk+e。
4. 递推求解每组根之和
下面我们证明:Qk×Qk+e 可以表示成上一层 Pv 的线性组合。
我们要算的乘积是 Qk×Qk+e。我们把这两个多项式具体写出来:
-
Qk 的展开式:它的指数是从 k 开始,每次跳 E 步。共有 F 项。
Qk=ζgk+ζgk+E+ζgk+2E+⋯+ζgk+(F−1)E
为了方便,我们用变量 j 代表第几项,即里面的元素形如 ζgk+jE (j 从 0 到 F−1)。
-
Qk+e 的展开式:它的起点比 Qk 多走了半步(即加了 e),每次也是跳 E 步。
Qk+e=ζgk+e+ζgk+e+E+⋯+ζgk+e+(F−1)E
我们用变量 r 代表它的第几项,即里面的元素形如 ζgk+e+rE (r 从 0 到 F−1)。
现在,把这两个长长的多项式相乘(利用分配律,即左边的每一项都要和右边的每一项相乘)。
总共会产生 F×F=F2 个项。
根据指数的乘法法则 ζA×ζB=ζA+B,这 F2 个项的指数(在模 p 意义下)都可以统一写成这样的“加和形式”:
指数和 S=gk+jE+gk+e+rE(modp) (式 6.2)
(其中 j 和 r 独立地在 0 到 F−1 之间遍历组合)
这 F2 个项看起来乱七八糟,怎么知道它们加起来是个什么东西呢?
高斯的魔法在于:不要去硬算,去寻找它们内部的对称性。
我们下面要分四个方面证明乘积的对称性。
- 我们要证明,乘积结果的每一项,依然在所有被分组的根中,即在 ζ1…ζp−1 之中,不会出现 ζp(即不会出现 1)
- 我们要证明,如果 ζgk 出现在了乘积结果中,ζgk+E 也必定在乘积结果中而且出现的次数相同,这说明如果 Qv 中的一个根在乘积结果中,整个 Qv 都在乘积结果中,且每个根出现次数相同。
- 我们要证明,如果 ζgk 出现在了乘积结果中,ζgk+e 也必定在乘积结果中而且出现的次数相同,这说明如果 Qv 的根都在乘积结果中出现 A 次,那么 Qv+e 的根也都在乘积结果中出现 A 次。这说明 Pv 中的每个根都在乘积结果中出现了相同的 A 次。
- 我们要证明,只要 Qk 中根的个数大于 1,如果 ζx 在某个组 Qk 中,那么 ζ−x 也必定在 Qk 中,从而保证 Qk 中的所有根求和后虚部会相互抵消。即任意分组的求和都是实数。
上面的性质 1,2,3 保证了 Qk×Qk+e 可以表示成上一层 Pv 的整系数线性组合,又知道 Qk+Qk+e=Pk,只要先求出所有上层 Pv 的值,根据韦达定理,就可以通过解二次方程的方法求出 Qk 和 Qk+e。性质 4 保证了二次方程的解一定是实数,也就是每次开根号的内部一定是正实数。那么所有求解都可以通过尺规作图完成。
随着分组的细化,最后必然能求出只有 ζ 和 ζ−1 的组的根的和,即能求出 ζ+ζ−1 的值。而
cos(p2π)=21(ζ+ζ−1)
这样我们就求出了最终的 cos(p2π)。
现在我们来依次证明上面的性质 1,2,3,4
「性质1」的证明:乘积中绝对不会出现常数项 ζ0=1
我们要证明,不论 j 和 r 取何值,指数之和绝对不可能为 0。假设存在某一项等于 1,即:
gk+jE+gk+e+rE≡0(modp)
这意味着两个数互为相反数:
gk+e+rE≡−gk+jE(modp)
在模 p 的原根世界里,−1 的指数是多少呢?因为 gp−1≡1(modp),考虑方程:x2≡1(modp),可分解为:(x+1)(x−1)≡0,因为 x≡1 不在原根的幂次中,所以原根幂次中的解只能是 x≡−1。另一方面,因为 p 是费马素数,(p−1)/2 是正整数,所以 g(p−1)/2 在原根的幂次中。(g(p−1)/2)2≡gp−1≡1,所以 g^{(p-1)/2} 是 x2≡1 在原根幂次中的解,因此必有:
−1≡g(p−1)/2(modp) (式 6.3)
因为 p 是费马素数 2m+1,所以 (p−1)/2=2m−1。我们将 −1 替换为指数形式,等式变为:
gk+e+rE≡gk+jE+2m−1(modp)
由于原根的不同幂次(指在模 p−1 意义下不同的幂次)两两不同,要让两边的结果相等,它们的指数在模 p−1(即 2m)意义下必须同余:
k+e+rE≡k+jE+2m−1(mod2m)
两边同时减去 k,并提取 E:
e+(r−j)E≡2m−1(mod2m)
别忘了,高斯的拆分规则是 E=2e。我们在等式两边同时除以 e(注意模也要变化,数论中如果 a⋅c≡b⋅c(modM),那么两边同时约去 c 时,模数 M 必须变成 gcd(c,M)M,只有和模互素的数才可以模不变直接约去)
1+2(r−j)≡e2m−1(mode2m)
请仔细观察这个式子!等号左边 1+2(r−j) 显然是一个奇数。等号右边的 e2m−1 是什么呢?
分为 E 组时每组最少有2个元素,所以分为 e 组时每组最少有4个元素,一共有 p−1=2m 个元素,所以 e 最大只能是 2m−2,所以右边 e2m−1 一定是2的幂次,它必然是一个偶数!一个奇数怎么可能在模一个偶数的情况下,和另一个偶数同余呢?这在数学上是绝对矛盾的。因此,假设不成立!展开式中绝对不会有任何两项加起来等于 0,乘积中永远不会出现幽灵常数 1。
「性质2」与「性质3」的合并证明:
我们要证明,乘积 Qk×Qk+e 展开后的 F2 个项并非杂乱无章,而是必然能打包成完整的 Qv 组(性质2),并且这些 Qv 还能两两配对,完美组合成上一层的 Pv(性质3)。
为了看清这种代数结构的内在对称性,我们引入近世代数中极具威力的工具——自同构算子 σ。
第一步:定义算子 σm
我们定义一个操作算子 σm:它的作用是将多项式中所有的单位根 ζ,统一替换为 ζgm(即对每一项进行 gm 次方运算)。在原根的指数世界里,这种替换的几何意义是极其直观的:
σm(ζgx)=(ζgm)gx=ζgm⋅gx=ζgx+m
也就是说,σm 算子的本质,就是把多项式中的每一个根,在原根序列中往后精准地整体推移 m 步!
在将 σm 应用于乘积之前,我们必须确认一个极其重要的代数性质:先相乘再替换,与先各自替换再相乘,结果是绝对等价的。
对于任意单项式 ζA 和 ζB:
先乘后替:σm(ζA×ζB)=σm(ζA+B)=(ζgm)A+B=ζA⋅gm+B⋅gm
先替后乘:σm(ζA)×σm(ζB)=(ζgm)A×(ζgm)B=ζA⋅gm×ζB⋅gm=ζA⋅gm+B⋅gm
结果完全相等!对于加法显然也有 σm(X+Y)=σm(X)+σm(Y)。
因此,对于任意多项式,我们都有极其优雅的同态性质:
σm(Qk×Qk+e)=σm(Qk)×σm(Qk+e)
第二步:应用 σE 算子,证明根总是以完整的 Qv 出现(性质2)
现在,我们令步长 m=E,即对乘数施加 σE 算子(全体后推 E 步):
因为 Qk 和 Qk+e 本身就是以 E 为周期步长生成的循环组,所以往后推 E 步,根刚好在它们各自的组内循环了一圈。即:
σE(Qk)=Qk,且 σE(Qk+e)=Qk+e。
代入同态性质中:
σE(Qk×Qk+e)=Qk×Qk+e
结论: 乘积展开式作为一个整体,在“根的指数全体后移 E 步”的魔法下,保持绝对不变!这意味着,如果展开式中包含某个根 ζgi,那么将其后移 E 步得到的 ζgi+E 也必定在展开式中,且出现的次数完全相等。这意味着如果 Qv 中任意一个根 ζgi 出现在乘法展开式中,那么整个 Qv 组里的所有根都会以相同的次数出现。这就证明了,乘积展开式必然可以表示为若干个 Qv 的整系数线性组合。
第三步:应用 σe 算子,证明 Qv 完美合并为 Pv(性质3)
在确认了展开式是由一块块完整的 Qv 拼成之后,我们令步长 m=e,对乘数施加 σe 算子(全体后推半步长 e):
对于 Qk:全体后推 e 步,起点从 gk 变成了 gk+e,恰好生成了 Qk+e。即
σe(Qk)=Qk+e
对于 Qk+e:后推 e 步变成 Qk+2e。因为 2e=E,根据前面的结论,跨越一个完整步长 E 等于回到自身。即
σe(Qk+e)=Qk
代入同态性质中:
σe(Qk×Qk+e)=σe(Qk)×σe(Qk+e)=Qk+e×Qk
根据乘法交换律,它等价于原来的 Qk×Qk+e。结论: 乘积展开式在“全体后移 e 步”的 σe 魔法下,再次保持绝对不变!这意味着如果展开式中包含了 A 个 Qv 组,那么将其后移 e 步,它必然也等量地包含 A 个 Qv+e 组。它们永远以 A(Qv+Qv+e) 的形式成对绑定。而根据我们的拆分定义,Qv+Qv+e 恰好就是上一层已知的 Pv!至此,我们极其严谨地证明了:Qk×Qk+e 的结果不仅封闭在所有原根幂次集合内(不会出现 1),而且必定可以表示为上一层若干个 Pv 的整系数线性组合。
「性质4」的证明:求和虚部抵消保证每次解出的都是实数
如果在求根公式里遇到了复数,那尺规作图就泡汤了。我们必须证明每个组 Pk 的值(可位于任意层,只要含 ≥2 个根)都是实数。
Pk 是实数,当且仅当组内的复数能够共轭配对。即如果 ζgi∈Pk,那么它的共轭 ζ−gi 也必须在 Pk 中。
由「性质1」中推导出的(式 6.3)我们知道:
−1≡g(p−1)/2(modp)
ζ−gi=ζg(p−1)/2gi=ζgi+(p−1)/2
因为任意的组 Pk 只要根数 f≥2,组数 e≤(p−1)/2,于是 (p−1)/2 一定是 e 的正整数倍,可以表示为 Ae,于是:
ζ−gi=ζgi+Ae
由于 Pk 的步长为 e,这意味着如果 ζgi∈Pk 那么 ζgi+e 也在 Pk 中,进而 ζgi+Ae 即 ζ−gi 也一定在 Pk 中。结论:互为共轭的两个根,永远被死死锁在同一个组里。 它们相加时虚部完全抵消,结果必为纯实数。
5. 走向最终的胜利
上面证明的四个性质,共同铸就了高斯正十七边形证明的不朽基石。
因为性质 1、2、3 保证了 Qk×Qk+e 的结果全由上一层已知的 Pv 构成,加上 Qk+Qk+e=Pk,我们便得到了 Qk 与 Qk+e 的和与积。已知两个数的和和积,如何求这两个数?构造二次方程:
(X−Qk)(X−Qk+e)=0
X2−(Qk+Qk+e)X+(Qk×Qk+e)=0
X2−(Pk)X+(Qk×Qk+e)=0
Q=2Pk±(Pk)2−4(Qk×Qk+e)
这两个根恰好就是拆分出来的 Qk 和 Qk+e!而性质 4 保证了这个二次方程一定有实数解,判别式 Δ 永远大于等于零。所有的加、减、乘、除和开平方运算,都完美符合尺规作图的物理限制。一层层剥开,一直算到只剩两个元素的组(即算出 ζ1+ζ−1),再根据:
cos(p2π)=21(ζ+ζ−1)
我们就严谨的得出了,费马素数正 p 边形的尺规作图方法。
再通过本章前面介绍的加减角度和角平分操作,我们就得到了通用的 n=2r⋅p1⋅p2…ps 的正 n 边形的尺规作图方法。
下一章我们会使用这章讲解的方法,实际解出正 17 边形的 cos(172π) 的值。