九章格数学 PhiloMath · K2C 正文 · C 段(大学低年级)

初等数论 · 大衍与互反

〇体例说明

体例

本书怎么读:一章一个节奏

全书按「章」前进,一章 50 页。每章的节奏是:第 1 页导引(这个问题在人类文明里是怎么长出来的,本章路线),随后 18 页讲义(定义、定理与方法一条一条立起来,含历史注与现代接口旁注),12 页例题(带完整解答与逐步演算),12 页习题(由浅入深,末页复盘归档),2 页格物札记——一章一思:一页回到《九章算术》的对照传统,一页接通现代数学;末 6 页为综合站(章小结 · 思想卡 · 挑战一 · 挑战二 · 实验 · 章测试与评讲)。

本册三条线索,贯穿每一章:

① 明线——盈不足与逼近。从《九章算术》盈不足术、刘徽割圆注起手,把「以已知的离散,逼近未知的连续」这门古老手艺,一步步提升为极限、连续、导数与积分的语言。凡标〔盈不足〕处,都是这条线索的接续点。

② 现代接口——微积分的现代形态。每章札记与综合站把本章内容与现代数学对齐:实数完备性的等价命题群、可微性的现代表达(方向导数与 Fréchet 导数)、最优化与凸分析、拓扑连续、计算机代数与数值分析。理论在这里长出今天的枝叶。

③ 离散 ⇄ 连续接口——两个世界的握手。盈不足术是线性插值、开方术是不动点迭代、差分是导数的离散影子、梯形法是积分的离散影子。凡标〔离散〕处,都把连续命题翻译成可计算的离散版本,再翻译回来。

写法约定(TEX 标准):分数写成上下两层的 12;极限的展示型写法是 limn→∞;微分号 d 与常数 π, e 用正体,变量用斜体 x, y, f;积分号 ∫;集合与数系符号 ∈ ⊂ ∪ ∩ ∅,ℕ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ;向量用粗斜体 a;等价 ≅、蕴含 ⟹、当且仅当 ⟺、任意 ∀、存在 ∃。中括号写成 [ ]。凡方法步骤,一律配图,一步一图。

一全册目录

目 录
初等数论 · 大衍与互反 · 全书正文页码一览
1.1 导引:商是配角,余数才是主角10
1.2 整除:定义与基本性质11
1.3 带余除法:存在性与唯一性12
1.4 素数与合数:整数的原子13
1.5 素数有无穷多个:Euclid 的证明与现代变奏14
1.6 最大公因数:定义与直觉15
1.7 Bézout 恒等式:良序原理的杰作16
1.8 辗转相除法:Euclid 算法及其效率17
1.9 互素:群论眼光初瞥——逆元存在的条件18
1.10 最小公倍数与 gcd·lcm 恒等式19
1.11 线性丢番图方程:ax+by=c 的判据与通解20
1.12 算术基本定理(一):存在性——最小反例法21
1.13 算术基本定理(二):唯一性——Euclid 引理的群论解释22
1.14 素数计数初步:π(x) 与素数定理远望23
1.15 素数的间隙:孪生素数猜想与 Bertrand 假设24
1.16 因子个数与因子和:τ、σ 与完全数25
1.17 现代接口:试除与 Miller–Rabin 预告——素性判定的第一块砖〔密码〕26
1.18 本章总结与方法表27
例题精讲(12 道)p.28–39
习题课与讲评p.40–50
复盘:错题归档与三问自测p.51
〖札记〗格物札记① 《九章》约分术与更相减损:gcd 的东方源头〔大衍〕52
〖札记〗格物札记② 良序原理:数论证明的隐形引擎53
综合站(小结 · 思想卡 · 挑战 · 实验 · 章测试)p.54–59
2.1 导引:高斯的钟表世界——模运算登场〔大衍〕60
2.2 同余的定义与基本性质61
2.3 剩余类与代表元:把整数折叠成 n 个抽屉62
2.4 ℤ/nℤ 的加法:一个群的诞生63
2.5 ℤ/nℤ 的乘法:什么时候能除?——单位群 (ℤ/nℤ)×64
2.6 群论速成:群、子群、陪集与 Lagrange 定理65
2.7 剩余类环:ℤ/nℤ 的完整代数结构66
2.8 同余式的运算规则:升模、降模与消去律67
2.9 中国剩余定理(一):物不知数的求解〔大衍〕68
2.10 中国剩余定理(二):代数证明——环同构的礼物69
2.11 中国剩余定理(三):秦九韶大衍求一术今译〔大衍〕70
2.12 Wilson 定理:项链计数法的组合证明71
2.13 Fermat 小定理:多项式视角与组合证明72
2.14 欧拉定理:φ 函数与一般化73
2.15 Euler φ 函数:公式推导与积性74
2.16 应用:模幂运算与快速幂算法75
2.17 现代接口:从 Fermat 到 Miller–Rabin——概率素性测试〔密码〕76
2.18 本章总结与方法表77
例题精讲(12 道)p.78–89
习题课与讲评p.90–100
复盘:错题归档与三问自测p.101
〖札记〗格物札记① 从《孙子算经》到《数书九章》:大衍求一术的千年接力〔大衍〕102
〖札记〗格物札记② 群论如何照亮数论:从 Lagrange 定理到 Fermat、Wilson103
综合站(小结 · 思想卡 · 挑战 · 实验 · 章测试)p.104–109
3.1 导引:在有限世界里解方程110
3.2 线性同余方程 ax≡b(n):解的存在性111
3.3 线性同余方程:解的个数与通解公式112
3.4 同余方程组:CRT 的一般形式113
3.5 多项式同余方程:f(x)≡0(p) 的根114
3.6 代数速成:环、域与多项式环——ℤ/pℤ 是域115
3.7 Lagrange 多项式定理:根不超过次数116
3.8 Lagrange 定理的证明:因式分解路线117
3.9 完全分裂:xp−1−1 在模 p 下的秘密118
3.10 求和公式:1+2+⋯+(p−1)≡0 与 −1 的藏身处119
3.11 Wilson 定理的代数再证:交错和路线120
3.12 降次与配方:解多项式同余方程的技巧121
3.13 丢番图方程的门槛:x2+y2=p 的同余侧写122
3.14 组合数论初谈:二项式系数 mod p123
3.15 Frobenius 映射:x↦xp 的代数之美124
3.16 解数统计:同余方程解的个数的组合意义125
3.17 现代接口:线性同余随机数生成器——LCG 的设计〔密码〕126
3.18 本章总结与方法表127
例题精讲(12 道)p.128–139
习题课与讲评p.140–150
复盘:错题归档与三问自测p.151
〖札记〗格物札记① 秦九韶「正负开方术」与 Horner:多项式求根的东方先声〔少广〕152
〖札记〗格物札记② 从 Fermat 小定理到有限域:F_p 的完整画像153
综合站(小结 · 思想卡 · 挑战 · 实验 · 章测试)p.154–159
4.1 导引:乘法群的骨架——谁的幂走遍全群?160
4.2 元素的阶:定义与基本性质161
4.3 阶的计算:穷举、约化与整除判定162
4.4 循环群与生成元:群论速成(二)163
4.5 循环群的子群:每阶恰有一个的独特风景164
4.6 群版 Lagrange 定理:Fermat 小定理的代数再证165
4.7 原根的存在性(一):素数模的构造性证明166
4.8 原根的存在性(二):全定理与边界167
4.9 原根的个数:φ(p−1) 的礼物168
4.10 指标:离散对数的古典名字169
4.11 指标算术:把乘法变加法170
4.12 指标表:Gauss 的求根工具箱171
4.13 二项同余方程:xn≡a(p) 的指标判据172
4.14 高次同余方程:n 次幂的可解性173
4.15 有限域的乘法结构:F_p 的完整解剖174
4.16 离散对数问题:乘起来容易,拆开很难175
4.17 现代接口:Diffie–Hellman 密钥交换与 ElGamal〔密码〕176
4.18 本章总结与方法表177
例题精讲(12 道)p.178–189
习题课与讲评p.190–200
复盘:错题归档与三问自测p.201
〖札记〗格物札记① 高斯《算术研究》:原根理论的诞生现场〔大衍〕202
〖札记〗格物札记② 从原根到公钥时代:离散对数与密码学的握手203
综合站(小结 · 思想卡 · 挑战 · 实验 · 章测试)p.204–209
5.1 导引:平方在模 p 下还剩下什么?〔少广〕210
5.2 二次剩余:QR 与 QNR 的定义211
5.3 一半一半:模 p 下恰有 (p−1)/2 个 QR212
5.4 欧拉判据:a(p−1)/2 ≡ ±1213
5.5 勒让德符号:定义与计算规则214
5.6 勒让德符号的运算法则:乘性与降模215
5.7 Gauss 引理:换个角度数一数216
5.8 Gauss 引理的应用:(2/p) 的完全判定217
5.9 二次互反律:陈述与第一瞥218
5.10 互反律的数值对账:素数互查表219
5.11 互反律证明(一):Gauss 引理计数路线220
5.12 互反律证明(二):Zolotarev 置换符号路线221
5.13 互反律用例:一次判定一大片222
5.14 互补律:(−1/p) 与 (2/p) 的完整收编223
5.15 求平方根:x2≡a(p) 的解法工具箱224
5.16 开平方的现代算法:Tonelli–Shanks 预告225
5.17 现代回响:从互反律到类域论——数论的长征〔少广〕226
5.18 全书结语:从物不知数到高斯的宝石227
例题精讲(12 道)p.228–239
习题课与讲评p.240–250
复盘:错题归档与三问自测p.251
〖札记〗格物札记① 从《九章》少广开方到模 p 开方:平方根的古今对话〔少广〕252
〖札记〗格物札记② 高斯的宝石:互反律两百年——从八个证明到类域论253
综合站(小结 · 思想卡 · 挑战 · 实验 · 章测试)p.254–259
绪论

从物不知数到高斯的宝石

一千五百年前,《孙子算经》问:有物不知其数,三三数之剩二……这是数论在中国的第一声啼鸣;一千二百年后,高斯把二次互反律称为「宝石」。本书从最朴素的整除出发,走向这两座高峰。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
绪论

绪论 从物不知数到高斯的宝石0.1 从「物不知数」说起:《孙子算经》的千古一问〔大衍〕

公元四五世纪,一位不知名的算学家在《孙子算经》卷下写下了数学史上最著名的问题之一:

《孙子算经》卷下 · 物不知数〔大衍〕

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?
答曰:二十三。

有一堆东西数目不明:三个三个地数余 2,五个五个地数余 3,七个七个地数余 2。问这堆东西有多少个?答案:23。

用今天的记号,这道题是求一个数 x,使得 x ≡ 2 (mod 3)、x ≡ 3 (mod 5)、x ≡ 2 (mod 7) 同时成立。答案不止 23——233、443、653……都满足;但 23 是最小的一个,通解是 x = 23 + 105t(105 = 3·5·7)。宋人程大位《算法统宗》把解法编成一首口诀:

三人同行七十稀,五树梅花廿一支,七子团圆正半月,除百零五便得知。

口诀的账本:2×70 + 3×21 + 2×15 = 233,再减去 105 的两倍,得 23。三个魔法数 70、21、15 各有来历:70 是 5 和 7 的倍数,且除以 3 余 1;21 是 3 和 7 的倍数且除以 5 余 1;15 是 3 和 5 的倍数且除以 7 余 1。把「除以 3 余 2」的那份用 70 去凑,其余两项同法相加——每个条件各出一位代表,互不干扰。

「三人同行七十稀」:三个条件各出一袋,合账再除零头 70 × 2 管 mod 3(70≡1) 21 × 3 管 mod 5(21≡1) 15 × 2 管 mod 7(15≡1) 合账 233 减去 105 × 2(两整轮) 答案 23
图 0-1 物不知数的口诀账本:每个模数派一位「余 1 代表」,加总后除掉整轮。这套「各管一摊、合账归一」的思想,将在第二章长成中国剩余定理。

这道题是本册的开篇之题。「余数」在小学里是除法的下脚料,在这里却成了主角:三三数之、五五数之、七七数之——同一个数在不同「模子」下留下不同的影子,数论的全部故事,就是研究这些影子之间的法则。〔大衍〕将作为章内接续点:从《孙子》到秦九韶「大衍求一术」,再到高斯的同余理论,一条暗线贯穿全书。

绪论

绪论 从物不知数到高斯的宝石0.2 什么是数论:整数世界的问题清单

数论是研究整数——尤其是正整数——性质的数学分支。它的原料朴素到极致:1, 2, 3, 4, 5, …;但它的定理深刻得惊人。一条判据:一个问题若用整数陈述、却需要非整数的工具才能解决,它多半就是数论问题。

数论的名题清单(跨越两千年的接力)

① 素数有多少?——Euclid 约在公元前 300 年证明:无穷多。(第一章)

② 孪生素数猜想——相差 2 的素数对有无穷多吗?(如 11 与 13)至今未决;张益唐 2013 年证明相差不超过 7000 万的素数对有无穷多,此后界被众人推进到 246。

③ 哥德巴赫猜想——大于 2 的偶数都能写成两个素数之和吗?1742 年提出,至今未决;陈景润 1966 年证明「1+2」。

④ Fermat 大定理——xn + yn = zn 在 n ≥ 3 时无正整数解。1637 年 Fermat 写在页边上,1995 年 Wiles 用椭圆曲线与模形式证明。

⑤ 本册的主问题——二次互反律:两个素数「互为平方剩余」的法则。高斯称之为「宝石」。(第五章)

本册的五站旅程:一条通往「宝石」的山道 第一站 整除 第二站 同余 第三站 同余方程 第四站 原根与指标 峰顶 互反律 高斯的宝石 第一章 第二章 第三章 第四章 第五章 明线一〔大衍〕:物不知数 → 大衍求一术 → 中国剩余定理 明线二〔少广〕:开方术 → 平方剩余 → 二次互反律
图 0-2 本册地图:五站旅程,两条明线。前四站各修一段路基——带余除法、群与环、多项式、循环性——最后在峰顶把「平方剩余」的对称性收进一条定律。

与清单上的未决难题不同,互反律是一个已被完全证明、且证明美到可以被反复重讲的定理。选择它作为目标,正因为它同时展示了数论的两副面孔:具体(每个素数对都能逐字验算)与抽象(定律本身说的是全体素数的对称性)。

绪论

绪论 从物不知数到高斯的宝石0.3 现代的入口:群、组合与「TheBook」的证明观

本册处理内容的方式是现代的:凡是能用群论语言说清的,绝不用零散技巧重说一遍。这不是炫技,而是经济——同余的世界天生就是群的温床,用群的眼光看,Wilson 定理、Fermat 小定理、原根存在性会共享同一副骨架。

TheBook

Pál Erdős 想象的那本书

匈牙利数学家 Erdős 常说:上帝有一本书,里面存着每个定理「最好的」证明。他不信上帝,但他信《The Book》。听到一个漂亮的证明,他会喊:「This one's from The Book!」

本册对主要定理的立场是 TheBook 式的:Fermat 小定理给项链计数证明,Wilson 定理给配对证明,二次互反律给计数与Zolotarev 置换符号两条证明——每一条都让定理显得「不得不真」。

组合数学是另一件现代武器:把代数恒等式翻译成数东西。下面的例子是 Fermat 小定理的项链证明预告——它将在第二章完整登场。

七珠项链账:27​ 条彩绳,除两条「纯色」外,每条项链恰占 7 个位置 转一格:还是同一条项链 7 个珠位 × 每条项链计数 7 次 = 27​ − 2 条「花」项链 → 7 | 27​ − 2
图 0-3 Fermat 小定理的项链预告:给 7 颗珠子各配红蓝二色,共 27 = 128 条彩绳;转动不产生新项链,只有全红、全蓝两条「纹丝不动」。于是花项链数 126 必须是 7 的倍数——即 27 ≡ 2 (mod 7)。

这样的证明不依赖任何记忆,只依赖「换个方式数同一批东西」——双计数。组合证明与群论证明在本册常常殊途同归:项链的「转动不变性」正是循环群作用的写照。

绪论

绪论 从物不知数到高斯的宝石0.4 全书地图:整除→同余→方程→原根→互反的五站旅程

全书五章,是一条环环相扣的行军路线:每一章都为下一章锻造一件兵器。

第一章 整除与带余除法带余除法给出「折叠」的原材料:gcd 与 Bézout 恒等式、辗转相除法、算术基本定理。《九章》约分术的更相减损在此与 Euclid 算法相认。
第二章 同余与剩余类高斯的记号把整数折叠成 n 个抽屉:ℤ/nℤ 的群与环、中国剩余定理(含秦九韶大衍求一术今译)、Wilson 与 Fermat 的组合证明、欧拉 φ 函数。
第三章 同余方程与多项式在有限世界里解方程:线性同余方程的完整判据、模 p 是域、Lagrange 多项式定理(根不超过次数)、Frobenius 映射、二项式系数 mod p。
第四章 原根与指标乘法群的解剖:(ℤ/pℤ)× 是循环群,生成元叫原根;指标把乘法变加法(离散对数的古典名字)。Diffie–Hellman 密钥交换是它的现代回响。
第五章 二次剩余与互反律峰顶之战:欧拉判据、勒让德符号、Gauss 引理,然后是二次互反律的 TheBook 证明(计数路线+Zolotarev 置换符号路线),以及通向类域论的远望。

两全其美的读法:顺着读,兵器一件不缺;带着问题读——每一章开头都会重申主问题「什么时候 x2 ≡ a (mod p) 有解」,可以看到答案如何一层层收网。

环环相扣:每一章交给下一章的兵器 第一章 带余除法 Bézout 第二章 群 ℤ/nℤ CRT · φ 第三章 域 F_p Lagrange 第四章 循环群 指标 第五章 互反律 TheBook 折叠的原材料 折叠的世界 方程的纪律 乘法的齿轮 对称的定律 第五章的每一次挥剑,都看得见前四章锻造的影子
图 0-4 兵器锻造链:带余除法造折叠、群论安世界、域论立纪律、循环群出齿轮,最后互反律把「平方」的对称性一锤定音。
绪论

绪论 从物不知数到高斯的宝石0.5 历史长廊:从《九章》《孙子》到《算术研究》〔大衍〕

本册的数学,是一条东方与西方交替领跑的接力赛道。把八件大事钉在同一根时间轴上,全书的历史坐标便一目了然。

两千年接力:东方算法与西方定理交替领跑 约 1 世纪 《九章》约分术 更相减损求 gcd 约 4 世纪 《孙子算经》 物不知数〔大衍〕 1247 秦九韶《数书九章》 大衍求一术〔大衍〕 1640 Fermat 小定理 页边一笔 18 世纪 Euler φ 函数 · 欧拉判据 1785 Legendre 符号 · 互反之猜想 1801 Gauss《算术研究》 同余记号 · 互反之证 1976 Diffie–Hellman 数论接管世界 1801 年高斯 24 岁;他在书中同时发明了记号(≡)、语言(同余)与定理(互反律)
图 0-5 数论时间轴:从《九章》的约分术到 1976 年公钥密码。注意两段空白——1640 年前的千年里,中国与印度在算法线上独行,而定理线在等待群论的语言。

三个细节值得驻足。其一,《九章算术》方田章的约分术(「以少减多,更相减损,求其等也」)正是辗转相减求 gcd——第一章将把它与 Euclid 算法并排讲。其二,秦九韶 1247 年的「大衍求一术」已把物不知数问题推广到任意模数,比 Euler 与 Gauss 的一般理论早了五百多年。其三,高斯的《算术研究》(Disquisitiones Arithmeticae) 完成于他 19 岁到 24 岁之间——「同余」这个核心概念连同记号 ≡,都是这本书的发明。

绪论

绪论 从物不知数到高斯的宝石0.6 数论与现代世界:RSA、Diffie–Hellman 与素数

1976 年以前,数论被公认为「最纯粹」的数学——Harder 称「它没有用」甚至是一种荣耀。1976 年 Diffie 与 Hellman 发表《密码学的新方向》,1977 年 Rivest、Shamir、Adleman 提出 RSA:两千年纯数学一夜之间接管了世界的秘密。

两个公钥系统的数论内核(本册将完整建立)

① RSA=中国剩余定理 + 欧拉定理。取大素数 p, q,公开 n = pq 与加密指数 e;保密 d,使 ed ≡ 1 (mod φ(n))。解密之所以唯一、之所以可行,全是第二章的定理在说话。试跑一遍真实数字:p = 61, q = 53, n = 3233, φ(n) = 3120, e = 17, d = 2753,验证 17 × 2753 ≡ 1 (mod 3120) ✓。

② Diffie–Hellman=原根 + 离散对数难题(第四章)。两人公开交换 ga, gb,各自算出 gab;偷听者知道 g、ga、gb,却难以反推 a、b——「乘起来容易,拆开很难」正是第四章的题眼。

Diffie–Hellman(迷参数 p = 23, g = 5):公开交换,密上合钥 A(私藏 a = 6) 发出 A = 56​ ≡ 8 B(私藏 b = 15) 发出 B = 515​ ≡ 19 公开信道(全被偷听) p = 23, g = 5, A = 8, B = 19 A 算 Ba​:196​ ≡ 2  B 算 Ab​:815​ ≡ 2 共同密钥 K = 56·15​ ≡ 2 (mod 23) 偷听者手握 8 与 19,要从 8 反推出 a = 6——这就是离散对数难题
图 0-6 Diffie–Hellman 迷你演示:A 与 B 在公开信道各亮出 8 与 19,却在各自心里算出了同一个 2。第四章将证明:只要 p 足够大,从 8 挖出 6 在计算上不可行。

本册不回避这些现代应用,但也不喧宾夺主:密码学是数论定理的消费者,不是本书的目的。每一处「现代接口」小节都会指明:是哪一条定理、哪一个群在承担安全。

绪论

绪论 从物不知数到高斯的宝石0.7 计算的眼光:用程序「做」数论

数论是最适合「动手算」的数学分支:定理说的就是可数的东西。本册每一章的「实验」综合站都配一个小程序,而正文中所有例题数值均由程序预先对账。先立一个样板——三行代码验算物不知数:

ans = [x for x in range(105) if x%3==2 and x%5==3 and x%7==2]
print(ans)              # [23]  ——《孙子算经》的答案,两千年后一行对账
print(2*70 + 3*21 + 2*15 - 2*105)   # 23  ——「三人同行七十稀」的口诀账

再看本册多处要用的两件「账房工具」:快速幂与欧拉判据。快速幂把 an mod p 的计算量从 n−1 次乘法压到约 log2n 次——指数 100 只需 7 步:

def mpow(a, n, p):          # 快速幂:an mod p
    r, a = 1, a % p
    while n:
        if n & 1: r = r*a % p
        a = a*a % p; n >>= 1
    return r
print(mpow(2, 100, 13))     # 3   (第二章例10 逐字对账)
print(mpow(5, 5, 11))       # 1   —— 5 是 mod 11 的平方剩余(第五章欧拉判据)

计算在本书里有三重身份:对账(定理的数字验证)、发现(先算出 QR 表,再猜出 (2/p) 的补律——这正是历史上 Euler 与 Gauss 的路)、反例(一个反例胜过十次苦算)。三重身份在第五章的「互反律对账器」实验里合流。

数据说明:全书例题数据均出自本册配套脚本——凡书中给出的具体数字,都先经程序复核。若发现书上算错,以程序为准。
绪论

绪论 从物不知数到高斯的宝石0.8 怎么读本书:记号、约定与节奏

记号先行,全书统一。下列符号将在首次出场处详细定义,此处先立清单备查:

全书记号总表

记号含义首次出场
a | ba 整除 b(b 是 a 的倍数)1.2
a ≡ b (mod n)n | (a − b),a 与 b 模 n 同余2.2
gcd(a,b) · lcm(a,b)最大公因数 · 最小公倍数1.6 / 1.10
(ℤ/nℤ)×模 n 的可逆剩余类乘法群2.5
ord(a) 或 |a|群元素 a 的阶4.2
φ(n)Euler 函数:不超过 n 且与 n 互素的正整数个数2.14
ind_g(a)以 g 为底的指标(离散对数)4.10
(a/p)勒让德符号(a 是否 mod p 的平方剩余)5.5

体例节奏:每章 50 页,按「讲义 ×18 → 例题 ×12 → 习题 ×12 → 格物札记 ×2 → 综合站 ×6」行进。讲义一步一图、一图一义;例题全部数值对账;习题课配提示;格物札记一谈中国古典、一谈现代发展;综合站含小结、思想卡、两道挑战(TheBook 式证明)、一个实验与章测试。

两条明线:〔大衍〕标记——从《孙子》物不知数到秦九韶大衍求一术再到 CRT 的算法线;〔少广〕标记——从《九章》少广开方术到模 p 开平方再到互反律的平方线。读到带标记的段落,就是在与古人同行。

最后是姿势建议:数论的定理不读完证明不算读。每个「定理」当作一座必须亲手走过的桥——本册的证明都按 TheBook 标准挑过,走一遍即是享受。

第一章

整除与带余除法

除法算完之后剩下的那个数,才是数论的起点。带余除法、Bézout 恒等式、辗转相除法——良序原理是隐形引擎;《九章》约分术的更相减损,与 Euclid 算法隔空相认。算术基本定理为整数立宪。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
讲义

第一章 整除与带余除法1.1 导引:商是配角,余数才是主角

小学的除法算式 385 ÷ 24,我们早在三年级就会写:商 16 余 1。但同一道算式有两种读法:商 16 说的是「装满 16 轮」——这是除法的数量职能;余 1 说的是「轮转之后还剩一格」——这是除法的结构职能。数论关心的,是后者。

看一只钟。17 时过后 9 小时是几时?26 时,但钟面只回答「2 时」:26 与 2 在钟面上无法区分。我们把这件事记作 26 ≡ 2 (mod 24)。钟面把全体整数折叠成 24 个位置,任何数都落到其中一个位置上——折叠的规则,正是带余除法。

折叠:数轴上的 26,落到钟面上 2 的位置 06 1218 24 26 = 24 + 2 卷起 0 6 12 18 2 的位置 17 也在这 钟面 = mod 24:24 格收尽一切整数
图 1-1 折叠与影子:26 与 2 在钟面上不可区分。第二章将把「无法区分」升级为严格定义——同余;把 24 个位置升级为代数对象——群 ℤ/24ℤ。

本书的第一句话

设 a, b 是整数,b ≠ 0。除法算式 a = qb + r(0 ≤ r < b)里,商 q 是「轮数」,余数 r 是「剩数」。数论 = 只盯着 r 的学问:r 怎么折叠(第二章)、r 怎么解方程(第三章)、r 怎么循环(第四章)、r 怎么对称(第五章)。

下一节先把「整除」这个词说严格——它是「r = 0」的特殊情形,也是全部理论的第一个原子。

讲义

第一章 整除与带余除法1.2 整除:定义与基本性质

定义 1.2.1(整除)

设 a, b 是整数,a ≠ 0。若存在整数 k 使 b = ak,则称 a 整除 b,记作 a | b;此时 a 是 b 的因数(因子),b 是 a 的倍数。不存在这样的 k 时记作 a ∤ b。

整除的四条基本性质,每条的证明都只有一行——但这一行行合起来,就是第一章全部 machinery 的雏形。

性质 1.2.2(整除的基本性质)

① 传递:a | b 且 b | c ⟹ a | c。 (c = bk = a(lk))

② 线性封闭:a | b 且 a | c ⟹ a | (mb + nc)(m, n 为任意整数)。 (mb+nc = a(mk1+nk2))

③ 边界:1 | b 恒真;b | 0 恒真(k = 0);a | a。

④ 夹逼:a | b 且 b | a(均非零)⟹ a = ±b。 (b = ak, a = bl ⟹ a = akl, kl = 1)

性质②是四条中最有分量的一条:若 a 同时整除 b 与 c,则 a 整除它们的一切整系数组合。把它倒过来读——对给定的 b、c,问「哪些 a 能整除 mb + nc」——就在追问最大公因数(1.6 节)。整除的结构天然是偏序的:把「整除」当作大小关系,全体因数组成一座格(lattice)。

12 的因子格:线自下而上表示「整除」,整除是一种大小关系 12 4 6 2 3 1 上大下小: 1 整除一切, 一切整除 12 虚线也是整除: 2 | 6,1 | 2 —— 格只画相邻的线
图 1-2 因子格:把 12 的全体因数按整除关系排成一座塔(虚线也是整除:2 | 6、1 | 2,格只画相邻的线)。这个「格」的视图是现代的:第五章将看到,平方剩余问题正是问「哪些数坐在塔的特定位置上」。
讲义

第一章 整除与带余除法1.3 带余除法:存在性与唯一性

定理 1.3.1(带余除法)

设 a 为整数,b 为正整数。则存在唯一的整数对 q, r 使

a = qb + r,  0 ≤ r < b.

证明(存在性) 在数轴上标出 b 的倍数:…, −b, 0, b, 2b, …。它们把数轴切成一段段长为 b 的区间。a 落在某一段 [qb, (q+1)b) 内——具体地,取 q 为不超过 a/b 的最大整数(良序原理保证整数分点非空且可取最大)。于是 r = a − qb 满足 0 ≤ r < b。(唯一性) 设 a = qb + r = q′b + r′,两式相减:(q − q′)b = r′ − r。左边是 b 的倍数,而右边满足 −b < r′ − r < b——长度为 b 的区间里唯一的 b 倍数是 0,故 r = r′, q = q′。∎

栅栏图:38 = 7 × 5 + 3(a = 38, b = 5) 05 1015 2025 3035 40 a = 38 qb = 35(q = 7 段) r = 3 唯一性的全部戏份在右端:38 与 35 之间再也挤不下一个 5 的倍数
图 1-3 带余除法:b 的倍数是等距栅栏,a 被夹进唯一的格子。q 是「进了几格」,r 是「离左栏杆多远」。

定理貌不惊人,其实是全书的第一台发动机:唯一性保证了「每个整数 mod b 有唯一影子」——没有它,第二章的「折叠」就叠不出良定义的钟面;存在性给出的取整手续,则是第四章「求阶」和第五章「求平方根」时反复使用的降模工具。良序原理(任何非空整数集若有下界则含最小元)是这两步的共同靠山——它是数论的「隐形公理」,1.7 节 Bézout 恒等式将再次调用它。

讲义

第一章 整除与带余除法1.4 素数与合数:整数的原子

定义 1.4.1(素数)

大于 1 的整数 p 称为素数(质数),若它的正因数只有 1 与 p 本身;大于 1 且非素数的整数称为合数。1 既不是素数也不是合数。

为什么把 1 开除出素数籍?这不是洁癖,而是保护算术基本定理的唯一性:若 1 算素数,则 6 = 2·3 = 1·2·3 = 1·1·2·3,同一数有「无穷多种分解」——唯一性荡然无存。1 是乘法世界的「单位元」,单位元不参与原子论,这条界线将在 1.13 节讲唯一性时彻底说清。

引理 1.4.2(试除的门槛:√n)

n > 1 是合数 ⟺ n 有因数 d 满足 2 ≤ d ≤ √n。

证明 ⟸ 显然。⟹ 设 n = ab,2 ≤ a ≤ b。则 a2 ≤ ab = n,故 a ≤ √n。∎

于是判定素数只需用不超过 √n 的素数试除。例如 223:√223 < 15,只需试 2, 3, 5, 7, 11, 13——全部除不尽,223 是素数(1.12 节前的例 3 完整跑一遍)。

因数成对出现:36 = 1×36 = 2×18 = 3×12 = 4×9 = 6×6 14 6√36=6 912 1830 36 1 × 36 4 × 9 3 × 12(内弧) 弧在 √36 = 6 处对折——找因数只需查到 6
图 1-4 √n 门槛:因数成对 (d, n/d),必有一头 ≤ √n。对折点 6 是唯一「自配对」的因数——素性判定的工作量从 n 次骤减到 √n 次。
讲义

第一章 整除与带余除法1.5 素数有无穷多个:Euclid 的证明与现代变奏

定理 1.5.1(Euclid,约公元前 300 年) 素数有无穷多个。

证明(TheBook 版) 反设素数只有有限个,全体列出为 p1, p2, …, p_k。令

N = p1p2⋯p_k + 1.

则 N > 1,故 N 有素因子(引理 1.4.2 之下至少是被自己整除;一般地 N 可分解)。但任取 p_i 去除 N 都余 1:N ≡ 1 (mod p_i)。于是 N 的素因子不在清单上——与「清单已完备」矛盾。∎

这个证明是「TheBook 式」的典范:不构造新素数,只证明清单永远关不上门。注意证明并没有说 p1p2⋯p_k + 1 本身是素数——它只保证这个数带来某个清单外的新素数。例如 2·3·5·7·11·13 = 30030,30031 = 59 × 509,带来两个新素数。

Euclid 的漏斗:任何清单都漏 素数清单 p₁, p₂, …, p_k 连乘加一 N = p₁⋯p_k + 1 除以清单上谁都余 1 取素因子 新素数 q ∉ 清单 清单被迫加长 把 q 添进清单,再来一遍——门永远关不上 30030 = 2·3·5·7·11·13 的「+1」= 30031 = 59 × 509:一次漏出两个
图 1-5 Euclid 的漏斗:反证的核心是「N 除以清单上每个素数都余 1」,于是它的素因子必然是新面孔。

现代变奏(Fermat 数路线):记 F_n = 22n + 1。关键观察:若 m < n,则 F_n − 2 = F_0F_1⋯Fm+1⋯ 的连乘关系使 F_m | F_n − 2。于是 gcd(F_m, F_n) 整除 2 与两奇数之 gcd,只能为 1——Fermat 数两两互素!每个 Fermat 数贡献一批全新素数,而 Fermat 数有无穷多个,故素数无穷。这条变奏的妙处:它把「无穷多」归功于一个显式的两两互素数列——组合结构代替了反证。

讲义

第一章 整除与带余除法1.6 最大公因数:定义与直觉

定义 1.6.1(公因数与最大公因数)

设 a, b 不全为零。同时整除 a 与 b 的整数称为它们的公因数;公因数中最大者记作 gcd(a, b)(简写 (a, b))。若 gcd(a, b) = 1,称 a 与 b 互素。

直觉一:交集。gcd(120, 78) 是「120 的因数集合 ∩ 78 的因数集合」的最大元。直觉二(更现代):因子格的交——1.2 节的格视图下,gcd 是两座塔在整除偏序下的最大公共下界。

gcd(120, 78) = 6:两个因子集合的交集 120 的因子 78 的因子 45 810 1215 2024 3040 60120 1326 3978 12 3 6 交集 {1, 2, 3, 6}:最大的公共下界是 6
图 1-6 gcd 即交集:120 = 23·3·5,78 = 2·3·13,公共部分取各素数的最小幂——2·3 = 6。这条「逐素数取小」的口诀要到 1.13 节才算真正讲清。

交集视图好算却不高——它依赖标准分解,而分解大数很难(这正是现代密码的安全前提)。下一节的 Bézout 恒等式给出一条不需要分解的路:用良序原理直接抓住 gcd,这正是把 gcd 从「搜索问题」变成「结构定理」的关键一步,也是群论登场前最后的铺垫。

预告:1.7 节将证明 gcd(a,b) 是「mb + nc 型数」中最小的正数——从「组合封闭」的性质 ②看,这句话说 gcd 恰好生成了一个组合世界。到第二章可以发现,这个组合世界正是理想 (a,b) 的雏形。
讲义

第一章 整除与带余除法1.7 Bézout 恒等式:良序原理的杰作

定理 1.7.1(Bézout 恒等式)

设 a, b 不全为零,d = gcd(a, b)。则存在整数 m, n 使 ma + nb = d。且 d 是一切「ma + nb 型数」中最小的正数。

证明(TheBook 版:良序原理一步到位) 考虑集合 S = {ma + nb : m, n ∈ ℤ, ma + nb > 0}。取 m = 1, n = 0(设 a ≠ 0)知 S 非空,由良序原理,S 有最小元 d。三方核验:
① d 整除 a:带余除法 a = qd + r(0 ≤ r < d),则 r = a − qd = (1 − qm)a + (−qn)b 是 S 型数。若 r > 0 则 r < d 与最小性矛盾,故 r = 0,即 d | a。同理 d | b。
② d 是公因数:已证。
③ d 最大:设 c 是任一公因数,则 c | ma + nb = d,故 c ≤ d。
三方合璧:d 就是 gcd,且它自己就有 Bézout 表达。∎

证明的神来之笔是第①步:用带余除法在 S 内部造出「更小的正元」,逼它为零。良序原理 + 带余除法的这套连招,将贯穿全书(1.12 算术基本定理、4.7 原根存在性)。看 120 与 78 的组合世界:

组合世界 {120m + 78n}:挤得再紧,最小正元是 6 = gcd 030 6090 120150 6(最小!) 1242 66102 6 = 120×2 − 78×3 世界里的数恰是 6 的倍数:0, ±6, ±12, ±18, …(非负部分已画出)
图 1-7 Bézout 的组合世界:120 与 78 的整系数组合恰好铺出 6 的倍数串,最小正元 6 = 120×2 + 78×(−3)。

组合世界「恰好是 d 的倍数」不是巧合:d 整除每个组合元(性质②),而 d 自己在 S 中——两头一夹,世界不多不少正是 d 的倍数集。这个「由生成元张成的世界」的图像,第二章将以子群的身份正式登场。

讲义

第一章 整除与带余除法1.8 辗转相除法:Euclid 算法及其效率

引理 1.8.1(算法的引擎) 对 b ∤ a(b ≠ 0),有 gcd(a, b) = gcd(b, a − qb),特别地 gcd(a, b) = gcd(b, r)(r 为 a mod b)。

证明 左边集合与右边集合其实是同一个:c | a 且 c | b ⟺ c | b 且 c | a − qb(性质②双向使用)。⟎

引理说:gcd 不因降模而变。于是反复降模——辗转相除,gcd(120, 78) 的全程账本:

辗转相除账本(120, 78)

步骤算式余数去向
①120 = 1 × 78 + 42gcd(120,78) = gcd(78,42)
②78 = 1 × 42 + 36gcd(78,42) = gcd(42,36)
③42 = 1 × 36 + 6gcd(42,36) = gcd(36,6)
④36 = 6 × 6 + 0余 0,gcd = 6 ∎

余数 42 > 36 > 6 > 0 严格递减——良序原理保证有限步内落到 0;最后一个非零余数就是 gcd。回代:6 = 42 − 36 = 42 − (78 − 42) = 2×42 − 78 = 2(120−78) − 78 = 2×120 − 3×78,与 1.7 节的 Bézout 系数 (2, −3) 会师。

余数的阶梯:每一级都是「大数 mod 小数」,终点的非零余数即 gcd 120 78 42 36 120 mod 78 = 42 78 mod 42 = 36 42 mod 36 = 6 6 gcd 在此 36 = 6×6 + 0:余数为 0,前一个余数 6 就是最大公因数
图 1-8 辗转相除的阶梯:120 → 78 → 42 → 36 → 6,四步到底。阶梯的「陡峭度」由 mod 的收缩保证:每一步余数小于除数。

效率的惊人事实(Lamé, 1844):Euclid 算法最坏情形恰发生在相邻 Fibonacci 数上——gcd(Fk+1, F_k) 恰需 k − 1 步(如 gcd(34, 21) = 1 用了 7 步)。于是步数 ≤ 5 × 输入的十进制位数:一百位的数也只需约五百步。快,是因为 mod 收缩得快——这个「对数级收缩」的思想,第四章的快速幂与离散对数将再度登场。

讲义

第一章 整除与带余除法1.9 互素:群论眼光初瞥——逆元存在的条件

互素不只是「公因数只有 1」的否定性陈述,它有一个响亮的肯定性等价刻画:

定理 1.9.1(互素的四个等价面孔) 对整数 a 与正整数 n,下列等价:

① gcd(a, n) = 1; ② 存在 x 使 ax ≡ 1 (mod n); ③ 存在整数 m 使 ma ≡ 1(mod n 的 Bézout 形式); ④ a 在「mod n 的乘法世界」里有逆元。

证明 ①⟹②:Bézout 给 ma + kn = 1,取 mod n:ma ≡ 1。②⟹①:设 ax ≡ 1 (mod n),则 ax − 1 = kn,任何公因数 c | a, n 必整除 ax − kn = 1,故 c = 1。②⟺③⟺④ 是转写。∎

面孔②是全书最常用的一条:互素 = 可逆。在 mod n 的世界里,「除以 a」不是除法,而是乘以 a 的逆元——这正是 1.2 节性质②「消去律」在模世界成立与否的分水岭。看 mod 5 的乘法世界(全体非零剩余 1, 2, 3, 4):

mod 5 的乘法世界 (ℤ/5)×:人人有逆(红蓝双向箭头 = 一对互逆) 1 2 3 4 2 × 3 ≡ 3 × 2 ≡ 1 (mod 5) 2 与 3 互为逆元,双向箭头一对 1 与 4 是「自逆」: 1² ≡ 1,4² ≡ 16 ≡ 1 (mod 5) 方框内外一致:乘法世界只有 1、2、3、4——0 不可逆(gcd(0,5)=5≠1)
图 1-9 mod 5 的可逆世界:2 与 3 互为逆元,1 与 4 自乘归一。没有 0 的位置——0 不可逆,因为 gcd(0, 5) = 5 ≠ 1。

这张图是第四章「原根」的第一眼雏形:乘法世界 (ℤ/5)× 有 4 个元素,从 2 出发幂游 2 → 4 → 3 → 1 走遍全群——2 是生成元。群论的语言将在第二章和第四章分两步把这件事说透;眼下:互素性是「可逆」的同义词,这是 Bézout 恒等式最漂亮的化身。

讲义

第一章 整除与带余除法1.10 最小公倍数与 gcd·lcm 恒等式

定义 1.10.1(最小公倍数) 同为 a、b 倍数的正整数中最小者,记作 lcm(a, b)。

引理 1.10.2(互素消去律——Euclid 引理的特例) 若 c ⊥ a 且 c | ab,则 c | b。

证明 Bézout:1 = cx + ay。两边乘 b:b = cbx + aby。c 整除右边两项(第二项由 c | ab),故 c | b。∎

定理 1.10.3(gcd·lcm 恒等式) 对正整数 a, b:gcd(a, b) · lcm(a, b) = ab。

证明 记 g = gcd(a,b),则 ab/g = a·(b/g) 是 a 的倍数,也是 b 的倍数——它是公倍数,故 L = lcm ≤ ab/g。反方向:设 L = am = bn,则 (a/g)m = (b/g)n;由 (a/g) ⊥ (b/g) 与引理 1.10.2 得 (b/g) | m,写 m = (b/g)t,代入:L = ab/g · t,而 L 是最小公倍数,t ≥ 1,故 L ≥ ab/g。两头夹逼,L = ab/g。∎

gcd·lcm = ab 的几何版:6 × 4 的地面铺满 2 × 2 的方砖 a = 6(宽)→ b = 4(高)↑ g = 2 的方砖 方砖数 = 6 = (6×4)/2 = ab / gcd 而 lcm(6, 4) = 12 恰是方砖行数 × 边长: 2 × 6 = 12 ✓ 面积账:ab 块 1×1 = (ab/g) 块 g×g ——「最小的砖」与「最小的公共周期」互为倒影
图 1-10 恒等式的几何证明:用 g × g 的最大方砖铺满 a × b 的地面,砖数 ab/g 恰等于 lcm。gcd 是「最大公共度量」,lcm 是「最小公共周期」——同一枚硬币的两面。

证明里引理 1.10.2 居功至伟——而它只是 Bézout 的一行推论。现代注脚:把 g 与 L 分别看作因子格 1.2 节中的「最大公共下界」与「最小公共上界」,定理 1.10.3 说的是乘法与格论的调和;到第五章,勒让德符号的乘性将再次扮演「结构随乘法携带」的角色。

讲义

第一章 整除与带余除法1.11 线性丢番图方程:ax+by=c 的判据与通解

定理 1.11.1(线性丢番图方程) 方程 ax + by = c(a, b ≠ 0)有整数解 ⟺ gcd(a, b) | c。有解时,设 (x0, y0) 是一特解,则全部整数解为

x = x0 + (b/g)·t,  y = y0 − (a/g)·t  (t ∈ ℤ),  g = gcd(a, b).

证明 ⟹ 左边是 gcd 的组合元。⟸ Bézout 给 ma + nb = g,乘 c/g。通解验证:代入后两项抵消;反之两解相减得 (a/g)·Δx = −(b/g)·Δy,由 (a/g) ⊥ (b/g) 与引理 1.10.2,(b/g) | Δx,即 Δx = (b/g)t。∎

跑一遍全流程:解 37x + 21y = 63。g = gcd(37, 21) = 1 | 63 ✓。1.7 节账本回代出 37×4 − 21×7 = 1,乘 63:特解 (252, −441),通解 x = 252 + 21t, y = −441 − 37t。

通解落在直线上:3x + 5y = 30 的非负格点恰三个 3x + 5y = 30(斜率 −3/5) 05 1015 05 1015 (0, 6)(5, 3)(10, 0) 斜率 −3/5:直线每前进 5 个格、下降 3 个格——「5 与 3 互素」保证格点恰好打在这三处
图 1-11 格点判读:互素斜率 a/b 使直线穿过正象限时「逢整数必中格点」,格点间隔由通解公式 x += b, y −= a 给出。

图中 37x + 21y = 63 一类方程的「非负解计数」是自然的后续问题:通解沿步长 (21, −37) 跳动,正象限只接得住有限几步——这类「计数通解」的题在习题课七展开。丢番图方程是数论的祖业:《九章》盈不足、拜占庭的「百鸡问题」(百钱百鸡)都是它的变奏,第三章将把「求解」升级到模世界。

讲义

第一章 整除与带余除法1.12 算术基本定理(一):存在性——最小反例法

定理 1.12.1(算术基本定理 · 存在性) 每个大于 1 的整数都能写成有限个素数的乘积(允许重复)。

证明(最小反例法) 反设存在不能分解的数,由良序原理取最小者 n。n 不是素数(素数自带分解 n = n),故 n 是合数:n = ab,1 < a, b < n。但 a、b 都比「最小反例」小,由 n 的最小性,a 与 b 都能写成素数之积——拼起来就是 n 的分解,与 n 是反例矛盾。∎

这个证明展示了良序原理的第二种用法:最小反例。1.7 节的用法是「取最小正元直接当答案」,这里是「取最小反例然后撕碎它」——两句台词,同一原理。对具体的数,分解按「从最小的素因子开始剥」逐层进行:

分解树:2024 = 2³ × 11 × 23(τ(2024) = 16 个因子,σ(2024) = 4320) 2024 2 1012 2 506 506 = 2 × 253 253 = 11 × 23 到素数为止,树就封顶 因子账(组合预演):τ = (3+1)(1+1)(1+1) = 16,σ = (1+2+4+8)(1+11)(1+23) = 4320
图 1-12 2024 的分解树:每层剥一个最小素因子。右下角的「因子账」预告 1.16 节——素数分解一旦到手,因子个数 τ 与因子和 σ 都是组合小算术。

树可以有不同的长法(先剥 11 也行),但叶子集合——重排意义下的素数串——是唯一的。这唯一性正是「基本」二字的分量,它的证明(1.13 节)比存在性微妙得多:需要一个真正深刻的引理,而那个引理的现代解读,是群论的第一声啼鸣。

讲义

第一章 整除与带余除法1.13 算术基本定理(二):唯一性——Euclid 引理的群论解释

引理 1.13.1(Euclid 引理) p 是素数,p | ab ⟹ p | a 或 p | b。

证明 设 p ∤ a。素数 p 的因数只有 1 与 p,而 p ∤ a,故 gcd(p, a) = 1——互素!由互素消去律(引理 1.10.2,c = p):p | ab ⟹ p | b。∎

定理 1.13.2(算术基本定理 · 唯一性) 把素数乘积按大小排好,分解方式唯一:n = p1a1 p2a2 ⋯ p_ra_r(p1 < p2 < ⋯)。

证明 设 n 有两个素数分解。两边出现的公共素数逐对消去(Euclid 引理保证:左边的 p 整除右边乘积,必与右边某个 q 相等——素数 q 只有 1 与 q 两个因数,p | q 迫使 p = q)。消到最后:若一边剩 1 而另一边剩素数 q,则 q 整除 1,矛盾。∎

群论解释:Euclid 引理里「p 不整除 a ⟹ p 与 a 互素」这一步,说的是素数在 mod a 的世界里是可逆元——「素」的本质是「在所有更小的世界里都不塌缩」。更现代的说法:唯一性是 ℤ 这个环的特惠,而非当然。在高斯整数 ℤ[i] 中,5 不是「素元」:5 = (2+i)(2−i),分裂了;但 ℤ[i] 仍是唯一分解的——(2+i) 与 (1+2i) 只差单位 i 相乘,本质同一。而在 ℤ[√−5] 中,唯一性真的破产:6 = 2 × 3 = (1+√−5)(1−√−5),两串分解无可调和——十九世纪的代数学家正是被这类现象逼出了理想论与抽象代数。

高斯整数 ℤ[i]:5 = (2+i)(2−i) 分裂,但分解在「差一个单位」的意义下唯一 2 + i 2 − i 1 + 2i 1 − 2i 虚线圆:范数 a²+b² = 5 红点 × 金点差一个单位 i: i(2 − i) = 1 + 2i 4 = (1+i)(1−i) 教科书级先例;6 = 2×3 = (1+√−5)(1−√−5) 才是真正的破产(ℤ[√−5])
图 1-13 素性的相对性:在 ℤ[i] 里 5 劈成 2±i(范数 5 的格点),「另一串」1±2i 只是转了 90°——乘单位不换本质。唯一分解是「好环」的勋章,不是公理。
讲义

第一章 整除与带余除法1.14 素数计数初步:π(x) 与素数定理远望

记 π(x) 为不超过 x 的素数个数。它是数论最重要的函数之一——本册只需它的几个采样点与一条「远景定律」:

采样表(程序对账)

x1001 00010 000100 0001 000 000
π(x)251681 2299 59278 498
x / ln x21.7144.81 085.78 685.972 382.4
比值1.151.161.131.101.08

素数定理(Hadamard · de la Vallée Poussin, 1896)

π(x) ∼ x / ln x,  即  limx→∞ π(x)·ln x / x = 1.

读法:x 附近的素数「密度」约为 1/ln x——十亿位数附近的素数密度约 1/20.7 ≈ 5%。证明需要复分析(ζ 函数的非平凡零点都在临界线上偏一侧),远超本册;但它的陈述人人可懂,且直接喂养第五章的互反律对账器。

素数并不稀疏:密度 1/ln x 下降得极慢 40% 十位数 1/ln 10 ≈ 0.43 23% 百位数 1/ln 100 ≈ 0.22 15% 万位数 1/ln 10⁴ ≈ 0.11 7.8% 百万位数 1/ln 10⁶ ≈ 0.07 百万位数附近仍有 1/13 的数是素数——素数是大海,不是孤岛
图 1-14 素数的「人口密度」:位数翻十倍,密度只打八折左右。这解释了为什么随机取一个 600 位数,试到 √x 已不可行,但「随机撞素数」却只需几十次。

从 π(x) 出发的远望,是第五章互反律对账器的底气:程序在几秒内验证上百对素数,靠的正是素数定理保证「素数管够、随手可取」。

讲义

第一章 整除与带余除法1.15 素数的间隙:孪生素数猜想与 Bertrand 假设

素数虽密,间隙却会拉长:113 与 127 之间隔着 13 个合数。两个方向的自然问题——间隙能多小与间隙会多大——一个至今未决,一个已有初等答案。

孪生素数猜想(未决) 形如 (p, p+2) 的素数对有无穷多对。已知前几对:(3,5), (5,7), (11,13), (17,19), (29,31), (41,43), (59,61), (71,73), …

张益唐的突破口(2013) 相差不超过 70 000 000 的素数对有无穷多对。此后 Polym8 数学社区把界压到 246——离 2 只剩「无穷」的距离。

Bertrand 假设(已决,1845 提出证明 / 1852 Chebyshev) 对每个整数 n > 1,存在素数 p 使 n < p < 2n。→ 完整初等证明见本章挑战二(Erdős 十七岁的证明)。

素数地形(≤ 100):孪生对成「双峰」,间隙是「峡谷」 020 4060 80100 孪生对:差 2 (29,31) (41,43) 峡谷:89 → 97 间 隔 5 个合数 素数 25 座峰(≤100):地形起伏不定,但 Bertrand 保证 100 以内每段 [n, 2n] 必有峰
图 1-15 素数地形图:金弧标出孪生对,右下角是早期的长间隙。孪生猜想问「金弧是否无穷」——一个尚未降服的远峰。

一条阅读分界线:孪生素数猜想「问无穷」,Bertrand 假设「问可达」——前者悬赏两百年未决,后者初等可证。分清这两类问题,是数论基本功:本册的主问题(互反律)属于「可达」一类,而它一旦证毕,立刻给出所有素数对都满足的定律——这正是「定律」与「猜想」的气质之别。

讲义

第一章 整除与带余除法1.16 因子个数与因子和:τ、σ 与完全数

算术基本定理一到手,因子结构立刻变成组合小算术。设 n = p1a1 p2a2 ⋯ p_ra_r,则 n 的每个正因子形如 p1b1⋯p_rb_r(0 ≤ b_i ≤ a_i)——每个指数独立选值:

定理 1.16.1(τ 与 σ 的公式)

τ(n) = ∏(a_i + 1),   σ(n) = ∏ (1 + p_i + ⋯ + p_ia_i) = ∏ (p_ia_i+1 − 1)/(p_i − 1).

对账(n = 2024 = 23·11·23):τ = 4×2×2 = 16;σ = (1+2+4+8)(1+11)(1+23) = 15×12×24 = 4320——与预演算一致 ✓。注意 τ 与 σ 都是积性函数:gcd(m, n) = 1 时 τ(mn) = τ(m)τ(n)——「互素则独立」将是第二章单位群与第五章勒让德符号反复出现的关键词。

完全数 σ(n) = 2n 的 n(真因子之和恰为自身)。前四个:6 = 1+2+3,28 = 1+2+4+7+14,496,8128。

Euclid–Euler 定理(两千年的接力:Euclid 给出构造,Euler 1837 年证明无遗漏):偶完全数恰为 2p−1(2p − 1),其中 2p − 1 是素数(梅森素数)。奇完全数是否存在,至今未决——已排除到 101500 以下。

完全数 28:真因子 (1, 2, 4, 7, 14) 与 28 本尊等重 1+2+4+7+14 28 天平平衡:σ(28) − 28 = 28。下一位 496 要等 8128——完全数稀如晨星
图 1-16 因子天平:完全数的天平恰好持平。毕达哥拉斯学派视 6 与 28 为「完满」之数——数学史上最长寿的未决问题(奇完全数)正源于此。

组合视角收束:τ 与 σ 的公式把「找因子」从枚举升格为指数独立选值的计数——这正是「因子格 1.2 节」的代数化身:格的每条路径对应一组指数选择。下一节走向本章的出口:当分解大数不可行时,如何不分解而判素。

讲义

第一章 整除与带余除法1.17 现代接口:试除与 Miller–Rabin 预告——素性判定的第一块砖〔密码〕

试除法的账单很清楚:判定一个 n 位数需要约 10n/2/(n ln 10) 次除法——600 位数要试 10297 量级,宇宙年龄也跑不完。RSA 需要 600 位的素数,故密码学的地基是不分解的判素。第一块砖是 Fermat 小定理(第二章完整证明),先睹其用法:

Fermat 检验(预告) 若存在 a 使 an−1 ≢ 1 (mod n),则 n 必是合数(快幂:约 n 位的平方级步数)。

陷阱:存在顽固的合数——Carmichael 数——对所有互素的 a 都冒充素数。最小的是 561 = 3 × 11 × 17(对一切 gcd(a,561)=1 都有 a560 ≡ 1)。Fermat 检验骗得过它。

Miller–Rabin 的二次修正(2.17 节完整展开)

把 n − 1 写成 2s · d(d 奇)。取 a,逐平方验链:ad, (ad)2, …, (ad)2s−1。若链中从不出现 −1 的等价物、且末项不是 1,则 n 是合数。关键:mod 奇素数 p,平方后仍等于 −1 的只有「真 −1」——Carmichael 数的伪装在平方环节被撕破(561 的链在 a = 2 时断裂)。随机 100 轮检验,合数漏网率 < 4−100。

两级漏斗:Fermat 粗筛,Miller–Rabin 精筛 Fermat 检验 an−1​ ≡ 1 ? Miller–Rabin 检验 平方链含 −1 ? 合数(铁案) 通过 → 可能素 561 混过关! 合数(含 561) 通过 → 素数 (概率 > 1−4−100​) 晋级
图 1-17 素性检验的两级漏斗:Fermat 粗筛放走了 Carmichael 数 561,Miller–Rabin 的平方链把它揪出。二者的数学内核——Fermat 小定理与平方的严格性——分别在第二、五章证毕。
讲义

第一章 整除与带余除法1.18 本章总结与方法表

本章从一句「商是配角」出发,抵达了算术基本定理。装备清单如下:

方法表:问题 → 工具 → 定理

问题工具定理编号
a = qb + r 唯一吗?良序原理带余除法 1.3.1
gcd 能否「不分解而得」?良序 + 组合世界Bézout 1.7.1
gcd 算多快?降模收缩Euclid 算法 1.8(Lamé:Fibonacci 最坏)
何时能消去?Bézout 一行推论互素消去律 1.10.2
分解唯一吗?Euclid 引理FTA 1.12.1 + 1.13.2
因子有多少、加起来多大?指数独立计数τ, σ 公式 1.16.1
如何不分解而判素?Fermat 检验 → MR预告 1.17(2.17 展开)
第一章知识地图:一台发动机(带余除法),三级传动(Bézout → 消去 → FTA) 带余除法 良序原理 Bézout 组合世界 互素 = 可逆 消去律 FTA 唯一性 Euclid 引理 第一章出发层 gcd 的结构化 群论第一瞥 素数的宪法 交给第二章的三件兵器:良序降模、Bézout 逆元、互素消去
图 1-18 知识地图:下一章把「mod n 的世界」升级为群与环——Bézout 的逆元面孔(1.9 节)将成为第二章的主角。
例题

第一章 整除与带余除法例1 整除证明:n(n+1)(2n+1) 被 6 整除

例 1 证明:对任意正整数 n,6 | n(n+1)(2n+1)。

解(组合双视角) 视角一(连续性):6 = 2 × 3。连续两数之积 n(n+1) 必含偶数,故 2 | n(n+1);又任何整数 mod 3 只能是 0, 1, 2:若 n ≡ 0 则 3 | n;若 n ≡ 2 则 n+1 ≡ 0;若 n ≡ 1 则 2n+1 ≡ 3 ≡ 0 (mod 3)。三类情形穷举,3 | n(n+1)(2n+1) 恒成立。2 与 3 都整除而 gcd(2,3)=1,由互素合流(若 2|N、3|N 且互素则 6|N——引理 1.10.2 的直接推论)得 6 | n(n+1)(2n+1)。

视角二(平方和):n(n+1)(2n+1) = 6·(12 + 22 + ⋯ + n2)/n?不引入分数,改写为恒等式 12+⋯+n2 = n(n+1)(2n+1)/6——正是平方和公式;反过来,本例的整除性恰保证了该公式右端永远是整数。

方法注记:「分解模数 + 逐模穷举」是第一章的招牌动作——到第二章它会升格为「中国剩余定理」的雏形: mod 2 与 mod 3 的信息可以独立获取、自由合并。

穷举 mod 3:n 只有三张面孔,每张都让因子 3 出现 n ≡ 0 (mod 3) 3 | n ✓ n ≡ 2 (mod 3) n + 1 ≡ 0,3 | n+1 ✓ n ≡ 1 (mod 3) 2n+1 ≡ 3 ≡ 0 ✓ 三选一,必中其一——再由 2 | n(n+1) 与 gcd(2,3) = 1 合流出 6 | N
图 1-19 穷举三面孔:余数世界是有限的,所以「分类讨论」总能在有限步内打完收工——这正是数论证明偏爱 mod 的原因。
例题

第一章 整除与带余除法例2 带余除法:求商定余与验证

例 2 求 −38 除以 5 的商与余数,即 −38 = 5q + r,0 ≤ r < 5。

解 在 5 的倍数栅栏 …, −40, −35, … 中找夹住 −38 的格子:−40 ≤ −38 < −35,故 q = −8,r = −38 − (−40) = 2。验证:5 × (−8) + 2 = −38 ✓,且 0 ≤ 2 < 5 ✓。

易错点 负数除法的「直觉商」常给错:若取 q = −7,则 r = −38 + 35 = −3 < 0,违反 0 ≤ r < 5——余数永远非负(本册约定),折叠必须落在正确的格子里。

推广核对 同样的手法对任何 a、b > 0:先找 b 的倍数栅栏里夹住 a 的那一格,q = 左栏杆,r = a − qb。程序语言里的「向零取整」与数学的「向 −∞ 取整」在负数上不同——写代码对账时要留意。

负数也要守规矩:−38 = 5 × (−8) + 2,余数 2 非负 −40−35 −30−25 −20−15 −10−5 0 −38 左栏杆 q·b = −40(q = −8) r = 2:−38 与 −40 的距离 若错取 q = −7(右邻 −35),r = −3 冲进禁区——唯一性只认非负余数
图 1-20 负数折叠:栅栏图不偏向任何人——−38 被夹在 −40 与 −35 之间,左栏杆 −40 才是合法的 qb。
例题

第一章 整除与带余除法例3 素性判定:试除法判定 221 与 223

例 3 判定 221 与 223 是素数还是合数。

解 门槛:√221 < 15、√223 < 15,只需用素数 2, 3, 5, 7, 11, 13 试除。
221:奇;2+2+1 = 5 非 3 倍数;不以 0/5 结尾;221 = 7×31 + 4、= 11×20 + 1、= 13×17 + 0——13 | 221,故 221 = 13 × 17,合数。
223:奇;2+2+3 = 7;尾非 0/5;223 = 7×31 + 6、= 11×20 + 3、= 13×17 + 2——全部除不尽,素数。

工作量账:六个除法定生死——√n 门槛(引理 1.4.2)把 223 之外的两百多个候选一票否决。这例子小到无感,但把门槛思想记住:判定 223 位素数需试到 √223 ≈ 15 位数——1015 次除法,个人电脑数天;这正是 1.17 节「不分解判素」的动机。

例题

第一章 整除与带余除法例4 Bézout:120 与 78 的整系数表达

例 4 求整数 m, n 使 120m + 78n = gcd(120, 78)。

解(回代法) 辗转相除(1.8 节账本):120 = 1×78 + 42;78 = 1×42 + 36;42 = 1×36 + 6;36 = 6×6。gcd = 6。倒着回代:
6 = 42 − 36
= 42 − (78 − 42) = 2×42 − 78
= 2×(120 − 78) − 78 = 2×120 − 3×78。
故 m = 2, n = −3。验证:240 − 234 = 6 ✓。

注 Bézout 系数不唯一:加 (13, −20) 后 120×15 − 78×23 = 6 也对(因为 120×13 = 78×20)。全部解的参数化在习题课三展开。

例题

第一章 整除与带余除法例5 辗转相除:步骤表与复杂度直觉

例 5 用辗转相除法求 gcd(2024, 1547),并列步骤表。

解 2024 = 1×1547 + 477;1547 = 3×477 + 116;477 = 4×116 + 13;116 = 8×13 + 12;13 = 1×12 + 1;12 = 12×1 + 0。故 gcd = 1(六步)。有趣的账:2024 = 23·11·23,1547 = 72·31……1547 的素因子账其实不必算——六步 mod 就判了互素。

复杂度直觉:每两步至少把较小数砍半(因为两次 mod 后余数必然小于原数的一半),所以步数 ≤ 2×位数级。Lamé 定理(1.8 节)更精确:最坏是相邻 Fibonacci 数。

余数收缩:2024 → 1547 → 477 → 116 → 13 → 12 → 1 2024 1547 477 116 13 12 1 mod 1547 → 477 mod 116 → 13 mod 12 → 1 六步判互素:全程不必知道 1547 = 7² × 31——mod 的收缩胜过分解的苦算
图 1-21 收缩链:从 2024 到 1 只用六步。 gcd 之外,这条「mod 链」还是第四章快速幂与离散对数算法的同款骨架。
例题

第一章 整除与带余除法例6 互素三连判:gcd=1 的等价刻画

例 6 用三种方法判定 91 与 48 互素,并写出对应的「逆元」。

解 法一(分解):91 = 7 × 13,48 = 24 × 3——素因子集合不相交,互素。
法二(Euclid 算法):91 = 1×48 + 43;48 = 1×43 + 5;43 = 8×5 + 3;5 = 1×3 + 2;3 = 1×2 + 1;2 = 2×1。gcd = 1。
法三(Bézout):由法二的 mod 链回代:1 = 3 − 2 = 3 − (5 − 3) = 2×3 − 5 = 2×(43 − 8×5) − 5 = 2×43 − 17×5 = 2×43 − 17×(48 − 43) = 19×43 − 17×48 = 19×(91 − 48) − 17×48 = 19×91 − 36×48。验证:19×91 = 1729,36×48 = 1728,差恰为 1 ✓。
逆元:由 19×91 − 36×48 = 1 取 mod 48:91 ≡ 43 ≡ −5,故 19×43 ≡ 1,即 43−1 ≡ 19 (mod 48)(同时 91−1 ≡ −36 ≡ 12 (mod 48))。

三法并评:分解直观但怕大数;Euclid 算法快;Bézout 回代顺带交出逆元——互素「= 可逆」(定理 1.9.1)的三副面孔在一次例题里轮番上场。

例题

第一章 整除与带余除法例7 gcd 与 lcm 联算:恒等式的应用

例 7 已知 gcd(24, 90) = 6,求 lcm(24, 90),并给出验证。

解 恒等式(定理 1.10.3):lcm = 24 × 90 / 6 = 360。验证:360 = 24×15 = 90×4 ✓ 是公倍数;再核最小性——24 = 23×3,90 = 2×32×5,逐素数取最大幂:23×32×5 = 360 ✓,两法一致。

应用(通分的最小代价):通分 1/24 与 1/90 的最小公分母正是 lcm = 360,而非 24×90 = 2160——恒等式直接告诉「最省的公共周期」。齿轮啮合、行星会合(lcm)与切割精度(gcd)是同一对对偶。

例题

第一章 整除与带余除法例8 线性丢番图:37x+21y=63 的通解

例 8 求 37x + 21y = 63 的全部整数解。

解 g = gcd(37, 21):37 = 1×21 + 16;21 = 1×16 + 5;16 = 3×5 + 1;5 = 5×1。g = 1 | 63 ✓ 有解。回代:1 = 16 − 3×5 = 16 − 3×(21 − 16) = 4×16 − 3×21 = 4×(37 − 21) − 3×21 = 4×37 − 7×21。乘 63:特解 x0 = 252, y0 = −441。通解:x = 252 + 21t, y = −441 − 37t(t ∈ ℤ)。

非负解清点:x > 0 需 t ≥ −11;y > 0 需 t ≤ −12——无交叠,正整数解不存在;t = −12 恰好给边界解 (0, 3)(y = 3, x = 0,验证 21×3 = 63 ✓)。

步长的方向感:通解每步 x 增 b = 21、y 减 a = 37——沿直线斜率 −37/21 跳格子,一步一响。

例题

第一章 整除与带余除法例9 标准分解:2024 的素因子账

例 9 把 2024 写成标准分解。

解 逐层剥最小素因子:2024 = 2 × 1012 = 4 × 506 = 8 × 253;253 不被 2, 3, 5, 7, 11, 13 整除,试 11:253 = 11 × 23。故 2024 = 23 × 11 × 23(见 1.12 节分解树)。

顺手收账:τ(2024) = (3+1)(1+1)(1+1) = 16;σ(2024) = 15×12×24 = 4320;2024 有 16 个因子(1 到 2024 全列),在日历上是「因子大年」——2024 年因此常被用作数论趣味题。

例题

第一章 整除与带余除法例10 因子函数:τ(2024) 与 σ(2024) 的组合算法

例 10 不逐个试除,直接用标准分解计算 τ(2024) 与 σ(2024)。

解 2024 = 23·11·23。
τ 的组合读法:因子 = 每个素指数独立选 b ∈ {0,1,2,3}(4 种)、{0,1}(2 种)、{0,1}(2 种),由乘法原理 τ = 4×2×2 = 16。
σ 的几何级数:2 的贡献 1+2+4+8 = 15;11 贡献 12;23 贡献 24;σ = 15×12×24 = 4320。
对账:直接枚举 16 个因子 {1, 2, 4, 8, 11, 22, 23, 44, 46, 88, 92, 184, 253, 506, 1012, 2024},求和 = 4320 ✓,个数 = 16 ✓。

「指数独立选值」是乘法原理的教科书舞台——算术基本定理把数论题变成组合题,本章标题的双主题在此会师。

例题

第一章 整除与带余除法例11 完全数:6、28 与 Euclid–Euler 公式初瞥

例 11 验证 496 是完全数,并写出它的 Euclid–Euler 参数。

解 496 = 24 × 31。σ = (1+2+4+8+16)(1+31) = 31 × 32 = 992?——不对,σ(24) = 31、σ(31) = 32,σ(496) = 31×32 = 992 = 2 × 496 ✓ 完全。
参数:496 = 24 × 31 = 25−1(25 − 1),对应梅森素数 25 − 1 = 31 素数 → 命中 Euclid–Euler 公式。前四位:p = 2, 3, 5, 7 → 6, 28, 496, 8128。

悬念:p = 11 时 211 − 1 = 2047 = 23 × 89 合数——梅森素数本身也需判素;第 52 个梅森素数(2024 年发现)有四千多万位,用的正是 Miller–Rabin 类检验。

例题

第一章 整除与带余除法例12 综合:一道整除题的代数与组合双解

例 12 证明:对任意正整数 n,C(n, 2) = n(n−1)/2 是整数(即 2 | n(n−1)),并把同样的论证升级到 3 | n(n−1)(n−2)。

解(代数):连续两数一奇一偶,2 | n(n−1)。
解(组合——TheBook 偏爱):n(n−1)/2 就是从 n 人中选 2 人的方案数,方案数天生是整数——整除性不需要证明,它是「计数意义」的赠品。
升级 3 | n(n−1)(n−2):三数中必有一个 3 的倍数(mod 3 穷举三情形);组合读法:n(n−1)(n−2)/6 = C(n,3) 是选 3 人方案数——一次看清 2 与 3 同时整除,还看清了那个 6 从哪来。

本章收官题的双重解法正是全章的方法论缩影:代数解法(mod 穷举)是第三章的种子,组合解法(计数必整)是第二章项链证明的种子——两条种子在互反律的 TheBook 证明里开花。

组合即整除:n(n−1)(n−2)/6 = 从 n 人中选 3 人的方案数 n = 4 人的点阵:单点 → 对 → 三角 选 3 的方案 = 红三角个数 = 4 公式:4×3×2/6 = 4 ✓ 「/6 之后仍是整数」不是巧合, 是计数意义带来的免费赠品
图 1-22 计数即整除:C(4,3) = 4。第三章将反方向用这个洞见——用「解的个数」来数数(组合数论);第五章用它数「平方剩余的个数」。
习题

第一章 整除与带余除法习题课一 整除与带余除法

练 1.1 证明:若 n 为奇数,则 8 | n2 − 1。

提示:n = 2k+1,n2 − 1 = 4k(k+1),连续两数一偶,且偶的那个是 2 的倍数——分 mod 4 两情形细账:k 偶则 8 | 4k,k 奇则 k+1 ≡ 2 (mod 4)。答案:恒整除,因子 8 严丝合缝。

练 1.2 求 1000 除以 7、−1000 除以 7 的商与余数。

答案:1000 = 7×142 + 6;−1000 = 7×(−143) + 1。负数时注意左栏杆取 −1001(7×(−143)),余数 1 非负。

练 1.3 证明:若 a | b 且 b | a(a, b 非零),则 a = ±b;再举例说明「a | b 且 a ≠ b」完全可能(a, b 正)。

性质④的复述题;正数例:a = 1, b = 7(1 | 7 但 7 ∤ 1)。

习题

第一章 整除与带余除法习题课二 素数与合数

练 2.1 用 √n 门槛判定 397 是否素数。

√397 < 20,试 2, 3, 5, 7, 11, 13, 17, 19:397 奇;数字和 19;尾非 0/5;397 = 7×56+5 = 11×36+1 = 13×30+7 = 17×23+6 = 19×20+17——全余,397 是素数。

练 2.2 证明:连续 k 个合数可以任意长(提示:考虑 (k+1)! + 2, …, (k+1)! + k+1)。

对每个 j = 2, …, k+1,(k+1)! + j 有因子 j 且商大于 1——素数间隙没有上限,但 Bertrand 假设说间隙总在 2n 之内重开。两件事不矛盾:间隙长而稀、整体仍稠密。

习题

第一章 整除与带余除法习题课三 Bézout 恒等式

练 3.1 求 gcd(352, 221) 的一组 Bézout 系数。

352 = 1×221 + 131;221 = 1×131 + 90;131 = 1×90 + 41;90 = 2×41 + 8;41 = 5×8 + 1。回代:1 = 41 − 5×8 = 41 − 5×(90 − 2×41) = 11×41 − 5×90 = 11×(131 − 90) − 5×90 = 11×131 − 16×90 = 11×131 − 16×(221 − 131) = 27×131 − 16×221 = 27×(352 − 221) − 16×221 = 27×352 − 43×221。验证:9504 − 9503 = 1 ✓。

练 3.2 设 gcd(a, b) = 1。证明:gcd(a + b, ab) = 1。

设素数 p | (a+b) 且 p | ab。由 Euclid 引理 p | a 或 p | b;又 p | a+b ⟹ p 也整除另一个——p 是公因数,与 gcd(a,b)=1 矛盾。答:互素。

习题

第一章 整除与带余除法习题课四 辗转相除法

练 4.1 用辗转相除法求 gcd(46368, 28657),并数一数步数。这两个数有来头吗?

它们是相邻 Fibonacci 数 F24 与 F23!gcd = 1,步数 22 = 24 − 2——Lamé 定理的最坏情形现场:相邻 Fibonacci 数把算法拖到最满。

练 4.2 证明:对一切 n ≥ 1,gcd(Fn+1, F_n) = 1(用 mod 链的恒等式 Fn+1 = F_n + Fn−1)。

gcd(Fn+1, F_n) = gcd(F_n, Fn+1 − F_n) = gcd(F_n, Fn−1),递降到 gcd(F2, F1) = gcd(1, 1) = 1——Euclid 算法在 Fibonacci 上的「恒等下降」。

习题

第一章 整除与带余除法习题课五 互素

练 5.1 求 −17 在 mod 43 下的逆元。

先取正代表:−17 ≡ 26 (mod 43)。Euclid:43 = 1×26 + 17;26 = 1×17 + 9;17 = 1×9 + 8;9 = 1×8 + 1。回代 1 = 9 − 8 = 9 − (17 − 9) = 2×9 − 17 = 2×26 − 3×17 = 2×26 − 3×(43 − 26) = 5×26 − 3×43。故 26−1 ≡ 5,即 −17 的逆元 ≡ 5 (mod 43)(验证:−17×5 = −85 = −2×43 + 1 ✓)。

练 5.2 证明:n 与 n+1 互素;n 与 n! + 1 互素。

连续整数公因数整除 1;n! + 1 除以任何 d ≤ n(d | n!)余 1。两题都是「结构性互素」——分解根本不用出场。

习题

第一章 整除与带余除法习题课六 lcm 与联算

练 6.1 两个齿轮分别 24 齿与 40 齿,同时从标记齿开始转动,最少转几圈后标记齿再次同时回到起点?

lcm(24, 40):24 = 23×3,40 = 23×5,lcm = 23×3×5 = 120 齿 = 24×5 圈 = 40×3 圈。答:转 5 圈(24 齿轮)与 3 圈(40 齿轮)。

练 6.2 已知 lcm(a, b) = 120、gcd(a, b) = 4、a < b 且 a 不整除 b。求 (a, b)。

ab = 480。设 a = 4m, b = 4n,gcd(m, n) = 1,mn = 30。互素分解对:(1,30), (2,15), (3,10), (5,6)。排除 a | b((1,30))与 lcm 错配:lcm = 4mn = 120 ✓ 全部吻合,但 (1,30) 被「a ∤ b」排除;(2,15):a=8,b=60,8 | 60? 否,60/8 非整 → 但 lcm(8,60)=120 ✓ 且 gcd=4 ✓——(8, 60) 与 (12, 40)(a | b? 12∤40 ✓, lcm(12,40)=120 ✓, gcd=4 ✓)与 (20, 24)(20∤24, lcm=120, gcd=4 ✓)。答案不唯一:(8,60), (12,40), (20,24) 都符合——条件要补「a + b 最大」才能锁定 (8, 60)。反思题:条件与解的不唯一性本身就是好教材。

习题

第一章 整除与带余除法习题课七 线性丢番图方程

练 7.1 《张丘建算经》百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?

设翁 x、母 y、雏 z:x + y + z = 100,5x + 3y + z/3 = 100。消 z(三倍价账):15x + 9y + z = 300,减去第一式得 14x + 8y = 200,即 7x + 4y = 100。gcd(7, 4) = 1 | 100 ✓。特解 x = 0, y = 25;通解 x = 4t, y = 25 − 7t, z = 100 − x − y = 75 + 3t。全正约束:t ≥ 1(x ≥ 1),25 − 7t ≥ 1 → t ≤ 3。答:三组解:(4, 18, 78), (8, 11, 81), (12, 4, 84)。《张丘建算经》原书答「翁四、母十八、雏七十八」及另两组——与本题全同。

习题

第一章 整除与带余除法习题课八 算术基本定理

练 8.1 证明:若 a2 | b3,则 a | b。

逐素数对账:设 pe ∥ a(pe 恰好整除 a),则 p2e | b3 ⟹ b 中 p 的幂次 ≥ ⌈2e/3⌉ ≥ e。FTA 让「整除」变成指数比较——这就是「宪法的用处」。

练 8.2 n 的哪些标准分解形状使 n 是完全平方数?立方数呢?

所有指数全偶 ⟺ 平方数;全为 3 的倍数 ⟺ 立方数。FFT 视角:完全平方数的因子格关于「指数折半」有中心对称。

习题

第一章 整除与带余除法习题课九 τ 与 σ

练 9.1 求最小的正整数 n 使 τ(n) = 10。

10 = 10×1 或 5×2。形状一:n = p9,最小 29 = 512。形状二:n = p4q(τ = 5×2),把大指数配给小素数:24×3 = 48。答:48(验证:48 = 24×3,τ = (4+1)(1+1) = 10 ✓)。

练 9.2 证明:σ(n) 为奇数 ⟺ n 是平方数或平方数的两倍。

σ(pa) = 1+p+⋯+pa 的奇偶:p = 2 时恒奇;p 奇时项数 a+1 决定(a 偶 ⟹ 奇项数 ⟹ 和奇)。全部分项皆奇 ⟹ 每个奇素数指数皆偶(且 2 的幂任意)——n = 平方数或 2×平方数。这是 σ 奇偶性的经典刻画。

习题

第一章 整除与带余除法习题课十 完全数与盈亏数

练 10.1 σ(n) > 2n 称「盈数」、< 2n 称「亏数」。判别 12、14、945 的盈亏。

12 = 22×3:σ = 7×4 = 28 > 24 盈;14 = 2×7:σ = 3×8 = 24 < 28 亏;945 = 33×5×7:σ = 40×6×8 = 1920 > 1890 盈——945 是最小的奇盈数。

练 10.2 证明:若 2p − 1 是素数,则 n = 2p−1(2p − 1) 完全。

σ(n) = (2p − 1)·(2p) = 2n——正是 Euclid 两千年前的构造;Euler 补的是「偶完全数别无分店」。奇完全数?仍是悬案(已排除到 101500)。

习题

第一章 整除与带余除法习题课十一 素数分布初探

练 11.1 用 π(x) 采样表估算「随机取一个小于 106 的整数,恰是素数」的概率,并与 1/ln(106) 对照。

78498/106 ≈ 7.85%;1/ln 106 ≈ 7.24%——素数定理的局部版已相当贴。

练 11.2 用 Bertrand 假设证明:对 n ≥ 2,存在素数 p 使 n < p < n!。

对 n ≥ 4:Bertrand 给 n/2 < q < n 的素数 q;n! 与 q 的关系不直接。改路:Bertrand 作用于 n:存在素数 n < p < 2n ≤ n!(n ≥ 4)。n = 2, 3 手工核(3 < 5 < 6? p=5 ✓)。

习题

第一章 整除与带余除法复盘:错题归档与三问自测

三问自测(不翻书作答,答不上再回讲义)

第一问 · 定义关:带余除法唯一性的证明里,「长度为 b 的区间里唯一的 b 倍数是 0」用到了什么?——若想不清,回 1.3 节(答案:0 ≤ r′ − r < b 的夹逼)。

第二问 · 证明关:Bézout 证明第一步为什么「d 整除 a」?关键动作是什么?——回 1.7 节(答案:在组合世界里用带余除法造出更小的正元,逼 r = 0)。

第三问 · 结构关:Euclid 引理为什么是 FTA 唯一性的命门?ℤ[√−5] 坏在哪里?——回 1.13 节(答案:唯一性每一步消素数都靠它;ℤ[√−5] 中 6 = 2×3 = (1+√−5)(1−√−5) 两串分解不可调和,因为「不可约 ≠ 素元」)。

错题归档表(建议格式)

错题错因归类对应讲义重做日期
   概念不清 / 步骤跳步 / 情形漏穷举 / 计算失误§     
      §     

复盘的检验标准不是「看懂了」,而是合上书能把证明重写出来。第一章的四个必背证明:带余除法唯一性、Bézout、互素消去律、FTA 唯一性——都是「一行一逻辑」的短证明,值得逐字过关。

格物札记

第一章 整除与带余除法格物札记① 《九章》约分术与更相减损:gcd 的东方源头〔大衍〕

《九章算术》方田章开篇讲田亩测量,随即遇到一个绕不开的技术问题:分数要约分。约分的全部难点在一个词——「等数」,也就是今天说的 gcd。刘徽注引的术文写道:

《九章算术》卷一 · 约分术

可半者半之;不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。

能对半分的先对半分;不能的,把分母、分子分列两旁,以少减多,辗转相减,求出「等数」(最大公约数),再用它去约。

拿 49/91 走一遍:「副置」两数 91、49;91 − 49 = 42,49 − 42 = 7,42 − 7 = 35,35 − 7 = 28,…(连减到)7 − 7 = 0——更相减损的账本会连减到底;术文允许求速:42 ÷ 7 恰尽,知等数为 7。约分得 49/91 = 7/13。

同一枚硬币:更相减损(减法)与辗转相除(带余除法) 更相减损(减法版) 91 − 49 = 42 49 − 42 = 7 42 = 7 × 6(连减六次) 等数 7 → 49/91 = 7/13 辗转相除(mod 版) 91 = 1 × 49 + 42 49 = 1 × 42 + 7 42 = 6 × 7 + 0 gcd = 7,三步到底 带余除法 = 「连减的打包」:《九章》的减法账本与 Euclid 的 mod 账本是同一套递降
图 1-23 东方减法与西方除法:更相减损术成书于公元一世纪,与 Euclid《原本》第七卷的辗转相减(original 也是减法!)遥相呼应;mod 是后人打的「打包快捷键」。

两处细节见精神。其一,「可半者半之」是 speed-up:先剥离 2 的因子——这与今天的「二进制 gcd」思想一致。其二,Euclid《原本》第七卷命题 1–2 的原始证法其实也是反复相减,带余除法是后人的打包优化——东西方在同一算法上各自独立地走到了一起,殊途而同归。

格物札记

第一章 整除与带余除法格物札记② 良序原理:数论证明的隐形引擎

本章出现了三次「取最小」:带余除法里取最大的 q(1.3 节)、Bézout 里取最小的正组合(1.7 节)、FTA 里取最小的反例(1.12 节)。三次的背后是同一条公理:

良序原理 自然数的任何非空子集都有最小元。

它看似废话,实则威力惊人——它与数学归纳法逻辑等价:归纳法「爬梯子」,良序「抓最低的梯级」。数论的证明传统偏爱良序,因为反证时它给的是一个具体的对手(最小反例),可分析、可撕碎。

良序原理:一台引擎,三种驱动方式 取最大(1.3 节) 倍数栅栏夹住 a → 带余除法存在性 取最小正元(1.7 节) 组合世界的最小者 → Bézout 恒等式 最小反例(1.12 节) 撕碎最小的那一个 → FTA 存在性 第四章的循环群证明(4.7 节)与第五章的互反律计数(5.11 节)还将两度调用同一引擎
图 1-24 良序的三副面孔:直接构造(取最大)、结构定位(取最小正元)、反证撕碎(最小反例)——一台引擎贯穿全书。

一个值得咀嚼的哲学观察:良序原理不是自然数的当然属性——整数的负半轴、正有理数集都没有最小元。「自然数良序」与「归纳法可用」是同一枚硬币,皮亚诺公理体系把两者焊在一起。下一章,这套「公理化的自觉」将升级为群论的语言:我们将不再一个个地研究数的性质,而是研究运算本身的结构。

综合站

第一章 整除与带余除法章小结:知识图谱与方法表

本章的骨架是一条「良序驱动链」:带余除法立折叠 → Bézout 抓 gcd → 互素开可逆 → Euclid 引理保唯一 → FTA 立宪法 → τ、σ 发红利。六个枢纽,每一步都由上一步供电。

知识图谱(文字版)

折叠层:带余除法 1.3(良序)→ 每个 a 有唯一 (q, r) → 「影子」合法。
公因数层:Bézout 1.7(组合世界)→ 辗转相除 1.8(mod 收缩)→ 互素 = 可逆 1.9。
乘法结构层:互素消去律 1.10 → Euclid 引理 1.13 → FTA 1.12+1.13 → τ, σ 1.16。
出口层:素性判定 1.4 → Fermat/MR 预告 1.17 → 第二章同余。

必背证明四条(合书重写级)

定理核心动作页码
带余除法唯一性相减 + 区间夹逼1.3
Bézout 恒等式最小正元 + 造更小正元逼零1.7
互素消去律Bézout 两边乘 b1.10
FTA 唯一性Euclid 引理逐对消素数1.13

三件兵器交给第二章:良序降模(在同余世界里继续用带余除法)、Bézout 逆元(1.9 节的四面孔将变成单位群的主角)、互素消去(CRT 的相容性论证)。

综合站

第一章 整除与带余除法思想卡:余数——把无限的世界折叠成有限

思想卡 · 一

余数是世界观

无限多的整数,被一个模数 b 折叠成有限的 b 个抽屉。抽屉里的数彼此「不可区分」——这不是缺陷,而是信息的压缩:判断 385 的奇偶不必看 385 全身,看它的影子 1 就够。

本章证明了折叠的合法性(带余除法唯一性):每个整数恰有一个影子。于是「研究整数」的一部分工作可以降维成「研究影子」——第二章给影子起正式的名字(剩余类),并发现影子们自己会做加法、乘法(群与环)。

一语蔽之:数论的第一步不是发现新数,而是学会失去信息——并且精确地控制失去了什么、保留了什么。

思想卡的另一面值得记录:折叠保留了什么?加法的影子保真(385 + 24 的奇偶性 = 影子 + 影子的奇偶性),乘法也保真——但除法不保真:6 和 2 影子不同(mod 4),可 6 ÷ 2 = 3 的影子没法由影子的除法得出。哪里保真、哪里失真,正是第二章「同余运算规则」(2.8 节)要精确划定的边界。

综合站

第一章 整除与带余除法挑战一 算术基本定理的完整证明

把 1.12 与 1.13 的两半合并,独立完成整座桥。允许引用:带余除法(1.3)、Bézout(1.7)、互素消去律(1.10)。分五步走:

第一步(引理桥) 证明:p 素数且 p | ab ⟹ p | a 或 p | b。
提示:p ∤ a 时 gcd(p, a) = 1(p 的因数只有 1、p),套互素消去律。

第二步(推广) 证明引理对任意 k 个因子的乘积成立:p | a1a2⋯a_k ⟹ 某个 a_i 被 p 整除。
提示:对 k 归纳,第一步是 k = 2。

第三步(存在性) 最小反例法:设 n 是不能写成素数乘积的最小整数(> 1)。n 非素(否则 n = n 是分解),故 n = ab,1 < a, b < n;由最小性 a、b 都可分解,拼出 n 的分解——矛盾。

第四步(唯一性) 设 n = p1p2⋯p_r = q1q2⋯q_s 是两组素数分解(都按大小排列)。p1 整除右边,由第二步 p1 = 某 q_j;同为素数迫使 q_j = p1。两边约去 p1(两边除以它仍是整数),对 n/p1 重复——归纳到底。若一边提前耗尽,另一边剩的素数乘积 > 1 整除 1,矛盾。

第五步(标准形) 把相同素数合并成幂,得标准分解 n = p1a1⋯p_ra_r,并证明 τ(n) = ∏(a_i + 1)。

验收标准:五个步骤中,不允许出现「显然」——每一步的合法性都要指明引用哪条已证结果。完成本挑战,就拥有了三千年数学史的压舱石。

综合站

第一章 整除与带余除法挑战二 Bertrand 假设的初等证明(Erdős 版)

目标:n > 1 时存在素数 p 使 n < p < 2n。Erdős 十七岁的证明是组合数论的杰作——把「存在大素数」化归为「二项式系数足够大」。以下路线图留白关键步:

步 1(归约) 只需对 n ≥ 2 证「(n, 2n) 中有素数」。反设:对某 n,区间 (n, 2n) 无素数。先取 n 使 n ≥ 2 的最小反例 n0,并说明可以假设 n0 ≥ 512(手工验证 n < 512 的情形即可——留白:给一个验证策略)。

步 2(中心二项式) 考虑 C(2n, n) = (2n)!/(n!)2。证明它是整数(组合意义),且 4n/(2n+1) ≤ C(2n, n) < 4n(上界由 (1+1)2n = Σ C(2n, k) > C(2n, n) 与均分估计)。

步 3(素数幂的审计) 关键引理(留白):pk ∥ C(2n, n) 时 k ≤ log2(2n)。证明思路:对 pk 整除 C(2n, n) 的情形,若 pk > 2n 则 pk 必整除 (2n)! 的两个「孤悬因子」(结合 p > √(2n) 时阶乘中 p 的幂公式)。

步 4(中段素数的角色) 若 (n, 2n) 无素数,则 C(2n, n) 的素因子都 ≤ n(或 = 2)。审计它们的总贡献:C(2n, n) ≤ (2n)√(2n) × 42n/3 级别——比步 2 的下界 4n/(2n+1) 矛盾(对 n ≥ 512)。

步 5(收网) 合并步 1–4 的不等式,得矛盾。∎

TheBook 评语:这个证明的口味是纯组合的——不碰微积分、不碰复分析,只数数。完整细节可读 Erdős 1932 年原文的重述(Aigner & Ziegler《Proofs from THE BOOK》第 4 章)。第五章的互反律证明会再次使用「审计素数贡献」的账本手法。

综合站

第一章 整除与带余除法实验:辗转相除可视化——最坏情形为何是斐波那契

实验目标:亲手验证 Lamé 定理——相邻 Fibonacci 数把 Euclid 算法拖到最满。程序三件事:数步数、画收缩链、扫全表找最慢。

def esteps(a, b):          # 辗转相除步数
    s = 0
    while b: a, b = b, a % b; s += 1
    return s

# 1) 相邻 Fibonacci 对账(Lamé:gcd(F(k+1), F(k)) 用 k−1 步)
fib = [1, 1]
while len(fib) < 15: fib.append(fib[-1] + fib[-2])
for k in range(2, 14):
    print(k, esteps(fib[k+1], fib[k]))    # 输出恰为 k−1

# 2) 扫描全表:1000 以内哪一对最慢?
best = max(((esteps(a, b), a, b) for a in range(2, 1000)
            for b in range(2, a)), default=(0, 0, 0))
print(best)   # 步数最多的一对,恰是相邻 Fibonacci!

观察任务:①步数序列 1, 2, 3, 4, 5, 6, …(对相邻 Fibonacci)是否严格等差?②全表扫描的最慢对是 (987, 610) = (F16, F15),步数 14——为什么 Fibonacc 是「收缩最慢」的?直觉:mod 的意义是「砍掉一整段」,而 Fibonacci 数的商 q 全是 1,一砍只砍一小段。商全 1 = 降模最温和 = 步数最多。③挑战:证明 Fibonacci 相邻对在所有 ≤ n 的数对中步数最多(Zeilberger 有一个四页证明)。

收缩速度对比:商全 1 的 Fibonacci 对降得最「温柔」 q 大(如 120 mod 78 的账,商 1 但 36 mod 6 商 6) q 全 1(Fibonacci:89 mod 55 = 34,一步只降一小段) F₁₆ = 987 → F₁₅ = 610 → 377 → 233 → 144 → … → 1:十四步缓缓落地 每个商都是 1——「砍一段」变成了「减一次」,mod 的打包优势全部失效 实验结论:最坏情形不是随机的倒霉,而是结构的必然——这正是 Lamé 定理的内容
图 1-25 收缩链对比:Fibonacci 对的商全为 1,mod 退化成减法,步数被拖到极限。
综合站

第一章 整除与带余除法章测试与评讲

T1(8 分) 求 2024 除以 37 的商与余数,并用「商 × 除数 + 余数 = 被除数」验证。

2024 = 37 × 54 + 26。验证:37 × 54 = 1998,1998 + 26 = 2024 ✓。

T2(12 分) 证明:3 | n3 − n 对一切整数 n 成立,并指出证明用了 mod 几的几种情形。

n3 − n = (n−1)n(n+1) 三连数,mod 3 穷举三情形必有一个 ≡ 0;也可按 n mod 3 = 0, 1, 2 直接验 n3 − n ≡ 0。三情形。

T3(16 分) 求 gcd(2024, 1547) 的 Bézout 表达(可用例 5 的 mod 链),并写出 2024 在 mod 1547 下的逆元。

例 5 链:477 = 2024 − 1547;116 = 1547 − 3×477;13 = 477 − 4×116;12 = 116 − 8×13;1 = 13 − 12。回代:1 = 13 − (116 − 8×13) = 9×13 − 116 = 9×(477 − 4×116) − 116 = 9×477 − 37×116 = 9×477 − 37×(1547 − 3×477) = 120×477 − 37×1547 = 120×(2024 − 1547) − 37×1547 = 120×2024 − 157×1547。逆元:2024−1 ≡ 120 (mod 1547)。验证:2024×120 = 242880 = 157×1547 + 1 ✓。

T4(16 分) 证明:若 gcd(a, 210) = 1,则 a 与 2、3、5、7 中每一个都互素;并说明由此可得「a 在 mod 210 的乘法世界里可逆」。以 a = 11 为例,求出它在 mod 210 下的逆元。

互素逐素数继承:gcd(a, 210) = 1 意味着没有公因数,而 210 = 2×3×5×7 的因数全由这四个素数拼成。11 的逆元:11×191 = 2101 = 10×210 + 1 → 11−1 ≡ 191 (mod 210)。

T5(18 分) 用 τ 公式解释:为什么有 8 个因子的最小数是 24?给出全部论证(枚举 8 的分解形状 + 最小化)。

8 = 8×1 → p7 → 27 = 128;8 = 4×2 → p3q → 23×3 = 24;8 = 2×2×2 → pqr → 2×3×5 = 30。最小 24。论证要点:大指数给小素数。

T6(30 分) 综合证明:设 n > 1。证明 (a) n 的第二大的因数是 n/p,其中 p 是 n 的最小素因子;(b) 由此推出:n 是素数 ⟺ n 的第二大因数是 1。

(a) 设 d 是第二大因数。n/d 是 n 的最小「对偶」因数(因数成对 d·(n/d) = n),n/d > 1 且 n/d 最小 → n/d 是素数 p(若合数还有更小因子)→ d = n/p。(b) p = n ⟺ n 素。

评讲要点

T1–T2 查「折叠基本功」与穷举意识;T3 查回代链条(写全每一步);T4 意在教会学生识别问题是否已在本章工具范围内——有些命题要等 Fermat 小定理(第二章)才够得着,识别边界也是能力;T5 查 FTA 的组合用法;T6 查因数对偶结构。总分 100,70 分以上进入第二章。

第二章

同余与剩余类

高斯发明同余记号,把无限整数折叠成 n 个抽屉:ℤ/nℤ 的加法群、单位群、剩余类环,是抽象代数的天然温床。物不知数在此得解,秦九韶大衍求一术与现代 CRT 同一条思路;Wilson 与 Fermat 的项链证明是组合的妙手。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
讲义

第二章 同余与剩余类2.1 导引:高斯的钟表世界——模运算登场〔大衍〕

1801 年,24 岁的高斯出版《算术研究》,第一句话就发明了一个记号——此后数论的语言再也不一样了:

《算术研究》§1 · 同余记号的诞生〔大衍〕

若 a 除以 n 的余数与 b 除以 n 的余数相同,则称 a 与 b 同余,记作

a ≡ b (mod n).

高斯自注:这个记号「表示两数对模 n 的关系」,横线上的双划提醒我们——这是一种相等,只不过是折叠世界里的相等。

一千五百年前的物不知数,在高斯的记号下三行写清:求 x 使 x ≡ 2 (mod 3)、x ≡ 3 (mod 5)、x ≡ 2 (mod 7)。同一个数 23 在三个模子下留下三道影子:

物不知数的现代写法:23 在三个钟面上的影子 mod 3 0 1 影子 2 mod 5 0 1 2 影子 3 4 mod 7 0 1 2 3 4 5 6 影子 2 23 = 3×7 + 2 = 5×4 + 3 = 7×3 + 2:三道影子 (2, 3, 2) 唯一锁定 23(mod 105)
图 2-1 三道影子:折叠后的「余数相等」就是新世界的「相等」。本章的任务:证明影子们会加、会乘、会成群——并解出三道影子的联立方程(中国剩余定理)。

本章路线:先给同余立运算规则(2.2–2.3),再把影子升格为代数对象——加法群 ℤ/nℤ(2.4)、单位群 (ℤ/nℤ)×(2.5)、群论速成(2.6);随后挥师中国剩余定理与大衍求一术(2.9–2.11),以 Wilson 与 Fermat 的组合证明收束(2.12–2.13)。

讲义

第二章 同余与剩余类2.2 同余的定义与基本性质

定义 2.2.1(同余) n 为正整数。若 n | (a − b),称 a 与 b 模 n 同余,记 a ≡ b (mod n);否则记 a ≢ b (mod n)。

定义里没有出现「余数」——同余被翻译成整除,这步翻译是高斯记号的力量所在(一切整除工具立刻可用)。由定义立刻读出三条:自反(a ≡ a)、对称(a ≡ b ⟹ b ≡ a)、传递(a ≡ b ≡ c ⟹ a ≡ c)——同余是一个等价关系,这是现代数学对「折叠」的正式称呼。

定理 2.2.2(运算保真) 若 a ≡ b, c ≡ d (mod n),则

① a + c ≡ b + d; ② a − c ≡ b − d; ③ ac ≡ bd; ④ 递推得 ak ≡ bk(k 正整数)。

证明 ①②:n | (a−b), n | (c−d) ⟹ n | (a−b)±(c−d)。③:ac − bd = (a−b)c + b(c−d),两项都是 n 的倍数(性质②的线性组合)。④:③反复用。∎

③的证明是一行线性组合——第一章性质②在折叠世界的第一次领薪。但注意除法不保真:2×3 ≡ 0 (mod 6) 而 2, 3 都 ≢ 0——两个非零影子的乘积可以塌到零(「零因子」现象),这正是 2.5 节单位群必须把「可逆者」单独圈出来的原因。看 mod 5 的抽屉:

折叠成五个抽屉:mod 5 的等价类 −3−2 −10 12 34 5 …, 0, 5, … …, 1, 6, … …, 2, 7, … …, 3, 8, … …, 4, 9, … [0] [1] [2] [3] [4] 同一条竖带 = 同一个抽屉: 数轴每隔 5 落回同一抽屉, 周期 5 的「印染纹」
图 2-2 等价类即抽屉:mod 5 把全体整数染成五色,同色带内任意两数同余。抽屉的正式名字是「剩余类」,记作 [a]5。
讲义

第二章 同余与剩余类2.3 剩余类与代表元:把整数折叠成 n 个抽屉

定义 2.3.1(剩余类与完全剩余系) [a]_n = {b : b ≡ a (mod n)} 称为 a 所在的剩余类。从 n 个类中各取一名代表,所得集合称为完全剩余系。

代表元的选取自由而任意:{0, 1, …, n−1}、{1, 2, …, n}、对称系 {−(n−1)/2, …, (n−1)/2}(n 奇)都是合法的完全剩余系。代数运算与代表元的选取无关——定理 2.2.2 的真正含义:剩余类的加法、乘法是良定义的。这一步「与代表元无关」的自觉,是抽象代数的胎动:我们开始操作对象本身,而非它们的化名。

例(mod 5 的三种取法对账)

取法[0][1][2][3][4]用途
最小非负01234默认
从一起51234历史文献
对称系012−2−1省字:Gauss 引理

对称系在第五章 Gauss 引理中会大放异彩——「以少减多」的古老直觉,将在那里变成 (p/2, p) 区间的代表元跳跃计数。眼下只需记住:代表元是化名,剩余类才是本人。

mod 7 的七个剩余类围成钟面:[0] 在顶,顺时针 [1] … [6] [0] [1] [2] [3] [4] [5] [6] [3] + [5] = [1]: 3 + 5 = 8 折回 1 [3] × [5] = [1]: 3 × 5 = 15 = 14 + 1
图 2-3 剩余类钟面:七只抽屉首尾相接。下一节起,钟面不再是比喻——[0]…[6] 将成为正式的代数对象,加法表与乘法表都由它们签发。
讲义

第二章 同余与剩余类2.4 ℤ/nℤ 的加法:一个群的诞生

定义 2.4.1(群) 集合 G 带二元运算 · 称为群,若:① 封闭;② 结合律 (a·b)·c = a·(b·c);③ 有单位元 e(e·a = a);④ 每个元素有逆元 a−1(a·a−1 = e)。再若 a·b = b·a 恒成立,称交换群(阿贝尔群)。

定理 2.4.2(加法群) ℤ/nℤ 的剩余类集合带加法 [a] + [b] = [a + b] 构成交换群。

证明 封闭与良定义:若 a ≡ a′, b ≡ b′,则 a+b ≡ a′+b′(定理 2.2.2 ①)——运算结果与化名无关。结合律与交换律从整数继承(整数里成立,取类后仍成立);单位元 [0];逆元 [−a] = [n−a]。∎

证明中最要紧的一句是「与化名无关」:群论的世界里,[3] 不是「数字 3」,而是整个抽屉——抽屉之间做运算,结果的抽屉不因从抽屉里挑了哪个代表而改变。mod 5 的加法表(Cayley 表):

ℤ/5ℤ 的加法表

+[0][1][2][3][4]
[0][0][1][2][3][4]
[1][1][2][3][4][0]
[2][2][3][4][0][1]
[3][3][4][0][1][2]
[4][4][0][1][2][3]

观察三件事:①每行是上一行的左移一格(循环性!第四章的主角);②每行每列都是全部元素的排列(拉丁方——逆元存在的表格化表述);③[0] 那行列原样不动(单位元)。

现代注脚:ℤ/nℤ 的加法群是循环群——整个群由 [1] 反复自加生成:[1] → [2] → … → [n−1] → [0] → [1]。这枚「生成元」的种子,第四章将长成原根理论:乘法世界里,谁的幂走遍全群?

讲义

第二章 同余与剩余类2.5 ℤ/nℤ 的乘法:什么时候能除?——单位群 (ℤ/nℤ)×

乘法同样保真(定理 2.2.2 ③):[a]·[b] = [ab]。但它造不成群——[0] 没有逆(除 1 = n 的退化情形),复合数还混进「零因子」:[2]·[3] = [0] (mod 6)。把可逆的类单独圈出来,得到一个惊人的干净世界:

定理 2.5.1(单位群) (ℤ/nℤ)× = {[a] : gcd(a, n) = 1} 带乘法构成群。它的元素个数是 φ(n)(Euler 函数,2.14 节)。

证明 ⟸ 若 gcd(a, n) = 1,Bézout 给 ma + kn = 1,取类:[m][a] = [1]——[a] 有逆 [m]。⟹ 若 [a][b] = [1],则 ab ≡ 1 (mod n),n | ab − 1,任何公因数 c | a, n 整除 1,故 gcd(a, n) = 1。封闭性由 gcd(a, n) = gcd(b, n) = 1 ⟹ gcd(ab, n) = 1(1.10 节互素传递)。∎

Bézout 恒等式在此兑现为「逆元」——1.9 节的四面孔正式上岗。看 mod 10 的单位群(与 10 互素的剩余类恰四个):

(ℤ/10ℤ)× 的乘法表(单位群实例)

×[1][3][7][9]
[1][1][3][7][9]
[3][3][9][1][7]
[7][7][1][9][3]
[9][9][7][3][1]

三个观察:①[3] 的幂走遍全群([3] → [9] → [7] → [1])——3 是生成元,阶 4;②[9] = [3]2 阶 2;③[1]2 = [1]、[9]2 = [9]——两个「自逆元」,预演 Wilson 定理的配对论证(2.12)。

幂的游走:3 的幂在 (ℤ/10)× 中走遍全群(生成元!),9 只能两点跳 1 3 9 7 3⁴ ≡ 1 3¹ 3² 3³ 3 的幂迹:3 → 9 → 7 → 1 四步走遍 = 循环群 9 的幂迹:9 → 1,两点来回 阶 2:轨道只是子群 ⟨9⟩
图 2-4 幂的游走:单位群里,有的元素走遍全群(生成元),有的只画小圈(阶更小)。「每个元素走多远」正是第四章的阶与原根问题。
讲义

第二章 同余与剩余类2.6 群论速成:群、子群、陪集与 Lagrange 定理

定义 2.6.1(子群) 群 G 的非空子集 H 称为子群,若 H 自带运算也成群(封闭 + 逆元在 H 内)。

定理 2.6.2(Lagrange 定理) 有限群 G 的子群 H 满足 |H| 整除 |G|。整除的商 [G : H] = |G|/|H| 是陪集的个数。

证明(TheBook 版:一次分蛋糕) 定义陪集 aH = {ah : h ∈ H}。三条:①任意两个陪集要么相等要么不交(aH ∩ bH ≠ ∅ ⟹ b−1a ∈ H ⟹ aH = bH);②每个陪集大小 = |H|(ah ↦ a 是双射);③全体陪集覆盖 G(a ∈ aH)。于是 G 被切成若干块大小 |H| 的蛋糕,块数 × |H| = |G|。∎

切蛋糕:ℤ/12ℤ 按子群 ⟨[3]⟩ = {[0], [3], [6], [9]} 切成 3 块陪集 0 1 2 3 4 5 9 6 11 7 8 10 金块 [0]H: 0, 3, 6, 9(4 个) 蓝块 [1]H:1, 2, 4, 5 米块 [11]H:7, 8, 10, 11 3 块 × 4 个 = 12
图 2-5 陪集切蛋糕:金色是子群本身,蓝与米是它的两个平移,每块一样大。Lagrange 的算术:块数 × 块大小 = 群阶——推论:元素的阶整除群阶(4.2 节 Fermat 小定理的群论根)。

立即兑现的红利:设 G 是交换群、a ∈ G,则 a 的所有幂构成子群 ⟨a⟩,其大小恰是 a 的阶。由 Lagrange:任何元素的阶整除群阶。对 G = (ℤ/pℤ)×(|G| = p − 1,第四章),这句话就是 Fermat 小定理的群论前身——组合的项链证明(2.13)与群的切蛋糕证明将在那里会师。

讲义

第二章 同余与剩余类2.7 剩余类环:ℤ/nℤ 的完整代数结构

把加法(2.4)与乘法(2.5)合起来,剩余类集合成了一座完整的代数建筑:

定义 2.7.1(交换环) 带加法与乘法、满足加法交换群 + 乘法结合交换 + 分配律 + 有乘法单位 1 的集合称为交换环;若 further 每个非零元都可逆,称为域。

定理 2.7.2(环与域的分界) 

① ℤ/nℤ 对任何 n ≥ 2 是交换环;
② ℤ/nℤ 是域 ⟺ n 是素数。

证明 ① 分配律 a(b+c) = ab + ac 在整数里成立,取类后仍成立。②(⟸)p 素数时,任何 [a] ≠ [0] 即 gcd(a, p) = 1(p 的因数只有 1 与 p),由定理 2.5.1 可逆——非零元全可逆,域。(⟹)n = ab 合数(1 < a, b < n):[a]·[b] = [ab] = [0],两个非零元乘出零——零因子在场,域的资格取消。∎

「模 p 是域」是第三章的全部地基:域里能约分、多项式根不超过次数(Lagrange)——这些在环里都会失灵。素数的代数性格在此定型:素数恰好是让折叠世界不产生零因子的模数。

代数建筑图:n 的素性决定 ℤ/nℤ 的「户口」 交换环 加减乘保真 n 任意 域 非零元皆可逆 n 素数 含零因子的环 [a][b] = [0],a,b ≠ 0 n 合数 例:ℤ/6ℤ 中 [2]·[3] = [0](零因子);ℤ/5ℤ 中人人可逆(域) 素性检验换了一种问法:这个模的世界里,「非零」与「可逆」是不是同义词?
图 2-6 户口图:合数模的世界里混着零因子,素数模的世界是域。第五章的勒让德符号将把「平方」作为新维度重新审视每个域。
讲义

第二章 同余与剩余类2.8 同余式的运算规则:升模、降模与消去律

折叠世界的四则规则中,「除法」最微妙。它的两个精确版本:

定理 2.8.1(消去律) 设 ab ≡ ac (mod n),g = gcd(a, n)。

① 若 gcd(a, n) = 1,则 b ≡ c (mod n)(可逆即可消);
② 一般地 b ≡ c (mod n/g)。

证明 ① a 可逆:两边乘 a−1。② n | a(b − c)。写 n = g n′、a = g a′、gcd(a′, n′) = 1,则 n′ | a′(b − c),由①(对 n′ 与 a′)n′ | b − c。∎

规则②是「带着公因数消去」的精确账:消去 a 的同时,模也要降。例:2×3 ≡ 2×0 (mod 6),消去 2 得 3 ≡ 0 (mod 3)——mod 6 里不能消,降到 mod 3 就能消。这就是降模。「升模」是反方向:mod 3 的信息自动升到 mod 6、mod 12(只要结论形如 n | t,则任何 n 的倍数也整除 t)。

例(消去律全程演算) 解 4x ≡ 2 (mod 6)。

g = gcd(4, 6) = 2 | 2 ✓ 有解(判据:g | b,习题课二细讲)。两边除以 2:2x ≡ 1 (mod 3)。2−1 ≡ 2 (mod 3)(2×2 = 4 ≡ 1),故 x ≡ 2 (mod 3)。升回 mod 6:x ≡ 2, 5 (mod 6)——两个解,恰 g 个。验:4×2 = 8 ≡ 2 ✓,4×5 = 20 ≡ 2 (mod 6) ✓。

4x ≡ 2 (mod 6):降模求解,升模收编 mod 6 世界 4x ≡ 2:两个解 2, 5 4 不可逆,直接消被禁 mod 3 世界 2x ≡ 1 → x ≡ 2 2 可逆(2² ≡ 1) 除以 g = 2,模降为 3 升模:x ≡ 2 (mod 3) 收编为 2, 5 (mod 6) 解的个数恰是 g:每个 mod 3 的解在 mod 6 里裂成 g 份
图 2-7 降模—升模对舞:消去公因数时模必须同步下降;解方程时先降到可逆的世界、再把解升回收编。「解数 = g」是第三章解数统计的序曲。
讲义

第二章 同余与剩余类2.9 中国剩余定理(一):物不知数的求解〔大衍〕

把开篇之题正式解一遍——这次用「影子逐条落实」的现代姿势:

求解物不知数 x ≡ 2 (mod 3),x ≡ 3 (mod 5),x ≡ 2 (mod 7)。

第一步:先管前两条。x = 2 + 3k,代入第二条:2 + 3k ≡ 3 (mod 5) ⟹ 3k ≡ 1 (mod 5) ⟹ k ≡ 2 (mod 5)(3−1 ≡ 2,因 3×2 = 6 ≡ 1)。故 k = 2 + 5t,x = 8 + 15t——x ≡ 8 (mod 15)。
第二步:并入第三条。x = 8 + 15t ≡ 2 (mod 7)。15 ≡ 1, 8 ≡ 1 (mod 7),故 1 + t ≡ 2 ⟹ t ≡ 1 (mod 7)。x = 8 + 15 = 23 (mod 105)。∎

策略:两条两条并——每并入一条,模就乘一次。三步之后通解 x ≡ 23 (mod 105),与《孙子》的「答曰二十三」及口诀账(0.1 节)三路会合。

三重筛:每道筛网留下一个余数条件 全体整数流 筛一:留 x ≡ 2 (mod 3) → 剩 x ≡ 2 (mod 3) 筛二:再留 x ≡ 3 (mod 5) → 剩 x ≡ 8 (mod 15) 筛三:再留 x ≡ 2 (mod 7) → 剩 x ≡ 23 (mod 105) 23 + 105t
图 2-8 三重筛:CRT 的动态画像——每并入一个模数,候选流变细一档,模数变大一次。2.10 节证明:只要模数两两互素,筛到最后必剩且只剩一个类。
讲义

第二章 同余与剩余类2.10 中国剩余定理(二):代数证明——环同构的礼物

定理 2.10.1(中国剩余定理 CRT) m, n 互素,则方程组 x ≡ a (mod m)、x ≡ b (mod n) 在 mod mn 意义下恰有一解。

证明(TheBook 版) 存在:由 Bézout 取 u 使 nu ≡ 1 (mod m)。令 P = nu(P ≡ 0 (mod n),P ≡ 1 (mod m)),Q = mu(对称地 Q ≡ 1 (mod n),Q ≡ 0 (mod m))。令 x = aP + bQ:mod m 得 a×1 + b×0 = a ✓;mod n 得 a×0 + b×1 = b ✓。唯一:两解之差 d 同时 ≡ 0 (mod m, n),互素迫使 mn | d。∎

证明的骨架是两个「开关元」P 与 Q:P 在 m 世界是 1、在 n 世界是 0——像一只只按一个世界亮灯的开关。任何目标影组 (a, b) 都由开关加权合成。环同构的礼物:映射 x ↦ (x mod m, x mod n) 是环同构 ℤ/mnℤ ≅ ℤ/mℤ × ℤ/nℤ——折叠世界与「影子对」的世界结构全同,加乘都逐影子进行。

环同构实拍(m = 3, n = 5):ℤ/15 的每个类恰对一支影子对
x (mod 15)影子对 (x mod 3, x mod 5)x影子对x影子对
0(0, 0)5(2, 0)10(1, 0)
1(1, 1)6(0, 1)11(2, 1)
2(2, 2)7(1, 2)12(0, 2)
3(0, 3)8(2, 3)13(1, 3)
4(1, 4)9(0, 4)14(2, 4)
15 支影子对两两不同、不重不漏——「折叠世界 = 影子对世界」不是修辞,是同构定理
图 2-9 同构对账表:ℤ/15 的 15 个类与 ℤ/3 × ℤ/5 的 15 支影子对一一对应。CRT 把「大模算术」拆成「小模并行」——大衍求一术的代数本质。
讲义

第二章 同余与剩余类2.11 中国剩余定理(三):秦九韶大衍求一术今译〔大衍〕

1247 年,秦九韶在《数书九章》中系统给出 CRT 的通用算法——大衍总数术,其中求「乘率」的核心步骤称大衍求一术。把古术逐词今译:

术语对译表〔大衍〕

秦九韶原语今译角色
问数(元数)模数 m1, m2, …(两两互素)筛网规格
定数化约后的互素模数CRT 的前提检查
衍数M_i = M/m_i(M = ∏m_j)「别人家模数之积」
奇数P_i = M_i mod m_i降模后的代表
乘率k_i 使 k_i·P_i ≡ 1 (mod m_i)求一术的目标 = P_i 的逆元
用数k_i·M_i(= 2.10 节的开关元)加权合成的砝码
总数Σ a_i·k_i·M_i加权总和
满 M 去之mod M 取最小正代表答案

「求一」二字直白:求出一个数,乘上去余一。求乘率的工具正是辗转相除的回代——秦九韶称「以奇模入之,辗转相减,得奇一而止」。用古术核一笔账:物不知数中 m3 = 7,衍数 M3 = 15,奇数 = 15 mod 7 = 1,乘率 = 1,用数 = 15——正是口诀里的「七子团圆正半月」!口诀的三个魔法数 70、21、15,原来就是三个用数:k_i·M_i。

用数 = 开关元:物不知数的三个砝码(M = 105)〔大衍〕 m₁ = 3 衍数 35,奇 2,乘率 2 m₂ = 5 衍数 21,奇 1,乘率 1 m₃ = 7 衍数 15,奇 1,乘率 1 用数 70 用数 21 用数 15 70 ≡ 1 (mod 3) 且 ≡ 0 (mod 5, 7):在 mod 3 世界亮灯、其余熄灯——「三人同行七十稀」的代数身份
图 2-10 砝码与开关:口诀里的 70、21、15 就是 CRT 的三个开关元。南宋的算法与高斯的定理,隔着一座桥:求一术求逆元,CRT 用逆元合成。
讲义

第二章 同余与剩余类2.12 Wilson 定理:项链计数法的组合证明

定理 2.12.1(Wilson,1770 提出证明 / 1773 Lagrange 证毕) p 素数 ⟺ (p − 1)! ≡ −1 (mod p)。

证明(素数方向:舞会配对) 在 (ℤ/pℤ)× 这个 p − 1 人的舞会里,每位客人 a 的舞伴是它的逆元 a−1。配对规则:a 与自己配对 ⟺ a2 ≡ 1 ⟺ a = ±1(x2 − 1 = (x−1)(x+1) 在域中恰两根)。于是除 1 与 −1 两人落单外,其余 p − 3 人两两牵手,每对乘积 a·a−1 ≡ 1。全员连乘:(p−1)! ≡ 1 × (−1) × 1 × ⋯ × 1 = −1。∎

组合读法:p − 3 位客人分成 (p − 3)/2 对「互逆舞伴」——配对本身是一种双计数:按客人计数与按舞伴计数是同一批牵手的两种数法。

反向(−1 ⟹ 素数):若 n 合数,n = ab(1 < a ≤ b < n),则 a 是 (n−1)! 的一个因子(a 出现在阶乘中),且 a 与 (n−1)!/a 互不干扰地同除 n − 1 的阶乘——更直接:ab | (n−1)!(a ≠ b 时两因子分别出现;a = b > 2 时 2a < n 使 a 出现两次),于是 (n−1)! ≡ 0 ≢ −1 (mod n)。∎

p = 13 的舞会:五对互逆舞伴,1 与 12 落单——全场乘积 ≡ −1 2 7 3 9 4 10 5 8 1 12 6 11 2 × 7 ≡ 1 3 × 9 ≡ 1 4 × 10 ≡ 1 5 × 8 ≡ 1 6 × 11 ≡ 1 自逆:1² = 1 自逆:12² ≡ 1(12 ≡ −1)
图 2-11 舞会配对(p = 13):十位客人五对牵手,每对贡献 1;1 贡献 1、12 贡献 −1——全场总积 ≡ −1。「谁能自配」的答案只有 ±1,这是域里 x2 = 1 的两根。

历史的趣味:Leibniz 早已知道此定理却未发表;Wilson 是学生时代猜到它;Lagrange 给出第一个证明;Gauss 在《算术研究》里嫌弃试凑式验证、代之以一般理论,并顺手推广到双阶乘((p−2)!! ≡ 1)。「素数 ⟺ 阶乘 ≡ −1」是素性的等价刻画——但作为判素工具毫无用处:算 (p−1)! 比试除贵得多。定理的价值在结构,不在效率。

讲义

第二章 同余与剩余类2.13 Fermat 小定理:多项式视角与组合证明

定理 2.13.1(Fermat 小定理,1640) p 素数:(a) gcd(a, p) = 1 ⟹ ap−1 ≡ 1 (mod p);(b) 任意整数 a:ap ≡ a (mod p)。

证明(项链计数——TheBook 组合版) 取 a 种颜色给 p 颗珠子染色,数「彩绳」:共 ap 条。让循环群 ℤ/p 作用在彩绳上(转动):p 是素数,轨道大小只能是 1 或 p(轨道大小整除 p,Lagrange)。哪些绳的轨道是 1?转动不变 ⟹ 全绳同色,恰 a 条。于是花绳数 ap − a 被 p 整除,即 p | ap − a。(b) 得证。(a):a 与 p 互素时,两边消去 a(消去律)得 ap−1 ≡ 1。∎

组合证明的齿轮:素性保证「轨道要么不动、要么整整转一圈」——没有 3 条、5 条这种中间尺寸。合成数模的世界里这台齿轮立刻卡住(轨道大小可以是真因子)。

p = 7、两色珠:128 条彩绳 = 2 条单色 + 18 条花项链(每条 7 根绳) 同一项链的 7 个转位:7 根绳算一条 单色绳:转不转都一样(轨道 1) 花项链一条 = 7 根绳 账:2⁷ − 2 = 126 = 7 × 18 → 7 | 2⁷ − 2(p | ap​ − a 的 a = 2 实例)
图 2-12 项链轨道账:素数 p 的转动只允许「整圈」或「不动」,于是花绳必成 p 条一组——Fermat 小定理的每一次成立,都是一次成功的分组。

多项式视角(第三章预演):ap ≡ a 对一切 a 成立,等于说多项式 xp − x 在 mod p 下有 p 个根——次数 p 的方程恰有 p 个根,「根不超过次数」的 Lagrange 定理与「完全分裂」现象都在这里探头。第三章将把这双眼看全。

讲义

第二章 同余与剩余类2.14 欧拉定理:φ 函数与一般化

Fermat 小定理依赖素数模——合成模的舞会里有人不可逆。Euler 的推广把主角换成「可逆者的全体」:

定义 2.14.1(Euler φ 函数) φ(n) = #{1 ≤ a ≤ n : gcd(a, n) = 1}——不超过 n 且与 n 互素的正整数个数。它正是单位群 (ℤ/nℤ)× 的大小。

定理 2.14.2(Euler 定理,1763) gcd(a, n) = 1 ⟹ aφ(n) ≡ 1 (mod n)。

证明(缩系重排) 取缩系(既约剩余系)R = {r1, …, rφ(n)}:全体与 n 互素的代表。乘 a 后的集合 aR = {ar1, …, arφ(n)} 仍是缩系——元素两两不同(a 可逆,ar_i ≡ ar_j ⟹ r_i ≡ r_j)且个个与 n 互素。两个缩系是同一批人的两种排列,全体连乘相等:R 的积 ≡ (aR) 的积 = aφ(n) × R 的积,消去 R 的积(可逆)即得。∎

这是「重排证明」的原型:交换群作用在自己的集合上保持结构。p 素数时 φ(p) = p − 1,Fermat 小定理是欧拉定理的特例—— generalize by replacing "everything" with "everything invertible"。

缩系重排实拍(n = 10, a = 3)

缩系 R[1][3][7][9]积 ≡ 1×3×7×9 = 189 ≡ 9
aR = 3R[3][9][1][7]34 × 189 ≡ 81 × 9 ≡ 9 → 34 ≡ 1 ✓
重排证明:乘以 a = 3,缩系 {1, 3, 7, 9} 换了座位、没换成员 1 3 7 9 3 9 1 7 ×3 是缩系上的一个置换——「乘可逆元 = 洗牌不换人」;全桌连乘即得 aφ(n)​ ≡ 1
图 2-13 缩系重排:四个人换了四把椅子,成员名单原封不动。这个「置换」观点将在第五章 Zolotarev 证明里升格为主角——置换的奇偶性竟然编码了勒让德符号。
讲义

第二章 同余与剩余类2.15 Euler φ 函数:公式推导与积性

定理 2.15.1(φ 的计算公式) 

① φ(p) = p − 1,φ(pk) = pk − pk−1 = pk(1 − 1/p);
② 积性:gcd(m, n) = 1 ⟹ φ(mn) = φ(m)φ(n)(CRT:与 mn 互素 ⟺ 与 m、n 分别互素);
③ 一般公式:φ(n) = n ∏p | n (1 − 1/p)。

对账(n = 360 = 23·32·5):φ = 360 × (1/2) × (2/3) × (4/5) = 96 ✓(预演算核过)。

φ 值瀑布(360 的账)

360 → 砍掉 2 的倍数:180 → 再砍 3 的倍数:120 → 再砍 5 的倍数:96.

每砍一个素数 p,留下 (p−1)/p 的幸存者——「逐素数过滤」正是容斥的瀑布版。第②条的 CRT 来源值得复述:x ↦ (x mod m, x mod n) 是双射,且「与 mn 互素」⟺「两个影子都与模互素」——互素性逐影子检查。

φ(360) = 96:三道过滤闸的幸存者账 360 180 120 96 ×1/2(滤 2) ×2/3(滤 3) ×4/5(滤 5) 360 = 2³·3²·5:每过一道 p 闸,幸存率 ×(p−1)/p——全部连乘即 n∏(1 − 1/p) 注意 2³ 的三个幂一起过闸:φ 只看「p 是否出现」,不看指数——这就是公式里没有 3 次幂的原因
图 2-14 瀑布账:φ 的公式不是背出来的,是三道过滤闸乘出来的。
讲义

第二章 同余与剩余类2.16 应用:模幂运算与快速幂算法

欧拉定理的日常用途是给指数「封顶」:算 aN mod n 时,指数 N 可以对 φ(n) 取余(gcd(a,n)=1 时)——指数瞬间变小。剩余的功耗由快速幂承担:把 N 写成二进制,逐位平方。

例(双剑合璧) 算 2100 mod 13。

第一步(Fermat 封顶):φ(13) = 12,100 = 8×12 + 4,故 2100 ≡ 24 = 16 ≡ 3 (mod 13)。
第二步(快速幂的折半账,若不用封顶):21 → 22 → 24 → 28 → 216 → 232 → 264 七次平方(mod 13 逐次降模),再按 100 = 64+32+4 挑三块相乘——7 次平方 + 2 次乘法,对比笨算的 99 次乘法。

快速幂:指数折半七级跳,再按二进制点将(100 = 64 + 32 + 4) 2¹ = 2 2² = 4 2⁴ = 16 2⁸ ≡ 3 2¹⁶ ≡ 9 2³² ≡ 3 2⁶⁴ ≡ 9 逐级自乘 mod 13 后循环(Fermat:2¹² ≡ 1) 取 2⁴ ≡ 3 取 2³² ≡ 3 取 2⁶⁴ ≡ 9 相乘:3 × 3 × 9 = 81 ≡ 3 (mod 13)——与封顶法同答案:2¹⁰⁰ ≡ 3 ✓
图 2-15 七级跳 + 点将:二进制把指数 100 拆成 64 + 32 + 4,阶梯自乘备货、点将相乘出货。RSA 的千位指数同款跑法——毫秒级。
讲义

第二章 同余与剩余类2.17 现代接口:从 Fermat 到 Miller–Rabin——概率素性测试〔密码〕

1.17 节的预告在此兑现。Fermat 检验:存在 a 使 an−1 ≢ 1 (mod n) ⟹ n 合数;反之通过者可能合数(伪素数),最顽固的 Carmichael 数 561 = 3 × 11 × 17 对一切互素的 a 都冒充通过。Miller–Rabin 的二次修正撕破伪装:

Miller–Rabin 检验(n − 1 = 2s·d,d 奇)

算 ad, (ad)2, (ad)4, …, (ad)2s−1 这条平方链。判定:若链中某项平方后突然出现 1 而前一项不是 ±1,或末项 ≠ 1,则 n 是合数。原理:mod 素数 p,x2 = 1 只有解 x = ±1(域!)——「1 的平方根只有两个」正是 2.12 节 Wilson 证明用过的同一个事实。合成数模里 1 的平方根可以更多,伪装在此露馅。

实战:561 在 a = 2 下现形

560 = 24 × 35。平方链(mod 561):235 ≡ 263 → 2632 ≡ 166 → 1662 ≡ 67 → 672 ≡ 1(4489 = 8×561 + 1 ✓)。末项是 1,但出现 1 之前的那一项是 67 ≠ ±1——平方链从 67 直接跳到 1,中间凭空多了「1 的平方根」,域的纪律被违反,561 合数铁案。

平方链现形记:a = 2,n = 561,560 = 2⁴ × 35 2³⁵ ≡ 263 263² ≡ 166 166² ≡ 67 67² ≡ 1 (不是 ±1) 素数世界里 1 的平方根只有 ±1:67² = 1 却 67 ≠ ±1 —— 域的纪律被违反,561 合数铁案 随机 a 重复 100 轮,漏网率 < 4⁻¹⁰⁰——RSA 密钥生成的现场标准
图 2-16 平方链审判:链上突然从 67 跳到 1,等于在素数世界凭空造出第三个 1 的平方根——Carmichael 数的伪装在「平方的严格性」前碎裂。 Wilson、Fermat、MR 共用同一块域论基石。
讲义

第二章 同余与剩余类2.18 本章总结与方法表

方法表:问题 → 工具 → 定理

问题工具定理编号
折叠后的加法乘法合法吗?等价关系 + 良定义2.2.2 / 2.4.2
何时能除(消去)?Bézout 逆元单位群 2.5.1 / 消去律 2.8.1
联立同余怎么解?开关元合成CRT 2.10.1 / 求一术 2.11
an−1 恒为 1 吗?项链轨道 / 缩系重排Fermat 2.13.1 / Euler 2.14.2
φ(n) 怎么算?逐素数过滤 + CRT 积性2.15.1
大指数怎么算?Fermat 封顶 + 快速幂2.16
如何不分解判素?平方链的域纪律Miller–Rabin 2.17
第二章知识地图:折叠 → 群与环 → 定理红利 → 现代出口 折叠世界 同余 · 剩余类 群与环 ℤ/nℤ · 单位群 CRT · 大衍 开关元合成 Fermat · Euler MR 判素 影子合法 可逆者结群 孙子 → 秦九韶 组合证明双璧 交给第三章的兵器:域 F_p(素性 ⟺ 域)——多项式方程的根数纪律由此起算
图 2-17 知识地图:域 F_p 是第三章的起跑线——「根不超过次数」的 Lagrange 定理需要域的消去律,而它正是本章单位群的馈赠。
例题

第二章 同余与剩余类例1 同余判定:大数降模与 2024 mod 7

例 1 求 2024 mod 7;并用同余性质快速求 20242024 mod 7 的最后一步思路。

解 2024 = 7 × 289 + 1,故 2024 ≡ 1 (mod 7)。由乘法保真:20242024 ≡ 12024 ≡ 1 (mod 7)——影子是 1,多少次幂都是 1。
降模技巧:大数不必硬除,逐段降模:2024 = 2000 + 24 ≡ 2000 mod 7(2000 = 7×285 + 5 ≡ 5)+ 3 ≡ 5 + 3 = 8 ≡ 1 ✓。

「先降模再运算」是同余世界的通用省力法:任何时刻都可以把参与者换成自己的影子。

例题

第二章 同余与剩余类例2 完整剩余系:三种取法与等价性

例 2 验证 {0, 1, 2, 3, 4}、{5, 6, 7, 8, 9}、{0, 1, 2, −2, −1} 都是 mod 5 的完全剩余系。

解 逐一取 mod 5 的影子:第一组 (0,1,2,3,4) 显然互异;第二组 (0,1,2,3,4) 同样互异;第三组 (0,1,2,3,4)——−2 ≡ 3、−1 ≡ 4。三组各占五只抽屉、每抽屉一人,都是完全剩余系。

判据:n 个整数构成 mod n 的完全剩余系 ⟺ 它们两两不同余 ⟺ 影子互不相同。线性变换:{a, a+b, a+2b, …, a+(n−1)b} 在 gcd(b, n) = 1 时也是完全剩余系(b 可逆,乘 b 是抽屉的重排)。

例题

第二章 同余与剩余类例3 加法群验证:(ℤ/12ℤ,+) 的子群清单

例 3 列出 (ℤ/12ℤ, +) 的全部子群,并核对 Lagrange 定理。

解 12 的因子 1, 2, 3, 4, 6, 12 各对应一个子群(循环群每阶恰一个,4.5 节证):{[0]};{[0],[6]};{[0],[4],[8]};{[0],[3],[6],[9]};{[0],[2],[4],[6],[8],[10]};全群。大小 1, 2, 3, 4, 6, 12——全部整除 12 ✓ Lagrange 对账。且每个子群恰好「一个阶一个」,没有私生的。

生成元观察:{[0],[4],[8]} = ⟨[4]⟩ = ⟨[8]⟩——同一子群可以有两个生成元(4 与 8 都是阶 3)。第四章将数清「每阶有多少个生成元素」。

例题

第二章 同余与剩余类例4 单位群枚举:(ℤ/10ℤ)× 的乘法表

例 4 写出 (ℤ/10ℤ)× 的元素与乘法表,指出每个元素的逆元与阶。

解 与 10 互素的剩余类:{[1], [3], [7], [9]}(φ(10) = 4)。乘法表见 2.5 节。逆元对:3−1 = 7(21 ≡ 1)、9−1 = 9(自逆)。阶:ord(1) = 1,ord(9) = 2,ord(3) = ord(7) = 4——3 与 7 都是生成元,(ℤ/10ℤ)× 是循环群。阶计数对账:每阶 d 的元素数 = φ(d):φ(1)=1(阶1: 1),φ(2)=1(阶2: 9),φ(4)=2(阶4: 3,7)✓——「阶的户口表」在第四章成建制。

例题

第二章 同余与剩余类例5 消去律:何时 ab≡ac 可约去 a

例 5 判断下列消去是否合法,并给出结论:(a) 6×5 ≡ 6×3 (mod 12) 中消去 6?(b) 5×5 ≡ 5×3 (mod 10) 中消去 5?(c) 6×5 ≡ 6×3 (mod 12) 按定理 2.8.1 该怎么处理?

解 (a) gcd(6, 12) = 6 ≠ 1,直接消不合法——事实:5 ≡ 3? mod 12 不成立(5−3 = 2 不被 12 整除)。(b) gcd(5, 10) = 5 ≠ 1,不合法:5×5 = 25 ≡ 5,5×3 ≡ 3,25 ≢ 3?25 − 3 = 22 不被 10 整除——前提高假,本题无消去可言。(c) 正确处理:ab ≡ ac (mod 12) ⟹ b ≡ c (mod 12/6 = 2),即 mod 2 下可消——5 ≡ 3 ≡ 1 (mod 2) ✓。

消去的三字诀:查 gcd。互素直消;有公因数则降模再消。

例题

第二章 同余与剩余类例6 物不知数:三人同行七十稀〔大衍〕

例 6 用口诀「三人同行七十稀,五树梅花廿一支,七子团圆正半月」复算物不知数,并说明口诀与 CRT 的对应。

解 口诀账:2×70 + 3×21 + 2×15 = 140 + 63 + 30 = 233;「除百零五便得知」:233 − 2×105 = 23 ✓。
CRT 对应:70 = 2×35 且 70 ≡ 1 (mod 3)——是 m1 = 3 的开关元(用数);21 = 21 ≡ 1 (mod 5) 且含因子 3、7——m2 = 5 的开关元;15 = 3×5 ≡ 1 (mod 7)——m3 = 7 的开关元。余数 2、3、2 作权重,「除百零五」= mod 105 取最小正代表。程大位的口诀 = 秦九韶的用数 = 高斯的开关元:三套语言,一个定理。

例题

第二章 同余与剩余类例7 CRT 联立:x≡2(3), x≡3(5), x≡2(7) 的求解

例 7 用开关元法(2.10 节)从零解此联立,不复用口诀。

解 M = 105。求三个开关元:
① P1 = 35:35 ≡ 2 (mod 3),需求 u1 使 2u1 ≡ 1 (mod 3) → u1 = 2,P1u1 = 70 ≡ 1 (mod 3)、≡ 0 (mod 5, 7) ✓。
② P2 = 21:21 ≡ 1 (mod 5),u2 = 1,开关元 21 ✓。
③ P3 = 15:15 ≡ 1 (mod 7),u3 = 1,开关元 15 ✓。
合成:x = 2×70 + 3×21 + 2×15 = 233 ≡ 233 − 2×105 = 23 (mod 105)。

「求 u_i」就是大衍求一术的求乘率:k·P_i ≡ 1 (mod m_i)。当 P_i mod m_i ≠ 1 时(如本题的 35 mod 3 = 2),这一步才真正干活。

例题

第二章 同余与剩余类例8 大衍求一术:乘率的计算〔大衍〕

例 8 用大衍求一术求 63 mod 11 的乘率(即解 63k ≡ 1 (mod 11))。

解 奇数 P = 63 mod 11 = 8(63 = 5×11 + 8)。辗转相除求 8−1 (mod 11):11 = 1×8 + 3;8 = 2×3 + 2;3 = 1×2 + 1。回代:1 = 3 − 2 = 3 − (8 − 2×3) = 3×3 − 8 = 3×(11 − 8) − 8 = 3×11 − 4×8。故 8−1 ≡ −4 ≡ 7 (mod 11)。验证:63 × 7 = 441 = 40×11 + 1 ✓。乘率 k = 7。

秦九韶的「以奇模入之,辗转相减,得奇一而止」就是这条回代链——求一术 = 求逆元 = Bézout 的定向使用。辗转相除在这里完成了它在本书的第三次出场:求 gcd(1.8)、求 Bézout(1.7)、求逆元(本例)。

例题

第二章 同余与剩余类例9 Wilson 对账:12! ≡ −1 (mod 13) 的逐项验证

例 9 按舞会配对逐项验证 12! ≡ −1 (mod 13)。

解 12! = 1 × 2 × 3 × 4 × 5 × 6 × 7 × 8 × 9 × 10 × 11 × 12。配对(每对乘积 ≡ 1):2×7 = 14 ≡ 1;3×9 = 27 ≡ 1;4×10 = 40 ≡ 1;5×8 = 40 ≡ 1;6×11 = 66 ≡ 1。剩下 1 与 12:1 × 12 = 12 ≡ −1。总积 ≡ −1 ✓。程序对账:12! = 479001600;479001600 = 36846276×13 + 12 → 余 12 ≡ −1 ✓。

顺手验反向:(p − 2)! = 11! ≡ 1 (mod 13)——约去 12(= −1 的逆还是 −1?不:除以 12 即乘 12−1 = 12,−1 × 12 = −12 ≡ 1)✓ 与预演算一致。

例题

第二章 同余与剩余类例10 快速幂:2100 mod 13 的折半账

例 10 用快速幂全程演算 2100 mod 13(不用 Fermat 封顶)。

解 阶梯自乘(每步 mod 13):21 = 2;22 = 4;24 = 16 ≡ 3;28 ≡ 9;216 ≡ 81 ≡ 3;232 ≡ 9;264 ≡ 81 ≡ 3(mod 13 下平方链 3 ↔ 9 循环——因为 ord(2) = 12 | ? 见第四章)。100 = 64 + 32 + 4,点将相乘:2100 ≡ 3 × 9 × 3 = 81 ≡ 3 (mod 13) ✓ 与封顶法(24 ≡ 3)一致。

成本账:6 次平方 + 2 次乘法 vs 笨算 99 次乘法。RSA 的 1024 位指数同法:约 1536 次模乘,毫秒级。

例题

第二章 同余与剩余类例11 φ 函数计算:φ(360) 的标准分解法

例 11 计算 φ(360) 并验证 φ 的积性路径。

解 360 = 23 × 32 × 5。公式:φ = 360 × (1 − 1/2)(1 − 1/3)(1 − 1/5) = 360 × 1/2 × 2/3 × 4/5 = 96。
积性路径:φ(8) = 4,φ(9) = 6,φ(5) = 4;gcd(8,9) = gcd(72,5) = 1,故 φ(360) = φ(8×9×5) = 4×6×4 = 96 ✓ 两路同归。
意义:96 是 (ℤ/360ℤ)× 的大小——一秒钟有 60×60 = 3600 秒档……钟表世界里的可逆者有 96 个。

例题

第二章 同余与剩余类例12 综合:星期几问题——模 7 算术与历法

例 12 已知 2024 年 1 月 1 日是星期一,求 2024 年 9 月 27 日是星期几。

解 数天数:1–8 月共 31+29+31+30+31+30+31+31 = 244 天(2024 闰年,2 月 29 天),9 月 27 日是当年第 244 + 27 = 271 天。经过的天数 271 − 1 = 270 ≡ 270 − 38×7 = 270 − 266 = 4 (mod 7)。星期一 + 4 = 星期五。

数论点评:历法是 mod 算术的宏大的应用——星期即 mod 7、闰年规则即「每 4 年补 1、百年扣 1、四百年再补 1」的同余修正(Gregor 历的 400 年周期 = 146097 天恰被 7 整除,所以日历每 400 年整体复用)。高斯的 weekday 公式、Zeller 公式,全是 CRT 的变奏。

星期环(mod 7):270 天 = 38 圈 + 4 格 一 二 三 四 五 六 日 起点:1 月 1 日(一) 落点:+270 ≡ +4 格 → 9 月 27 日(五)
图 2-18 星期环:历法的折叠世界。270 天绕环 38 圈再走 4 格——「商是配角,余数才是主角」的第一章誓言,在日历上兑现。
习题

第二章 同余与剩余类习题课一 同余基本性质

练 1.1 证明:a ≡ b (mod n) ⟺ n | (a − b) ⟺ a mod n = b mod n。三者互为化名。

定义直接读出第一条;第二条:a mod n = b mod n 意味着 a 与 b 落同一抽屉,差是 n 的整倍数。

练 1.2 用同余性质求 72024 mod 5。

7 ≡ 2 (mod 5);24 ≡ 16 ≡ 1(Fermat 或直接枚举 2 的幂循环 2,4,3,1 周期 4);2024 = 4×506 → 72024 ≡ (24)506 ≡ 1 (mod 5)。影子 1。

练 1.3 若 a ≡ b (mod n),则 gcd(a, n) = gcd(b, n)。证明并举例。

a − b = nk ⟹ a = b + nk:任何 c | n 时 c | a ⟺ c | b——与 n 的公因数集相同。例:2024 ≡ 1 (mod 7),gcd 都是 1。

习题

第二章 同余与剩余类习题课二 剩余类与完整系

练 2.1 证明:{0, b, 2b, …, (n−1)b} 是 mod n 的完全剩余系 ⟺ gcd(b, n) = 1。

⟸ b 可逆,乘 b 是抽屉置换;⟹ 若 d = gcd(b, n) > 1,则 0 与 (n/d)·b 同余(都 ≡ 0 抽屉?(n/d)b = n·(b/d) ≡ 0)——两人同抽屉,不是完全系。

练 2.2 从对称系取代表:写出 mod 12 的对称完全剩余系。

n 偶时取 {−5, −4, …, 4, 5}?12 = 2×6:对称系取 ±1…±5 加 0 或 6——通常取 {0, ±1, ±2, ±3, ±4, ±5, 6}:6 只出现一次(自对偶)。答案:{−5, −4, −3, −2, −1, 0, 1, 2, 3, 4, 5, 6}。

习题

第二章 同余与剩余类习题课三 ℤ/nℤ 的加法

练 3.1 证明 ℤ/nℤ 的加法群中,[a] 的阶 = n / gcd(a, n)。

k[a] = [0] ⟺ n | ka ⟺ (n/g) | k(g = gcd(a, n))——最小正 k 是 n/g。例:[4] 在 ℤ/12 中阶 3(12/4 = 3)✓ 与例 3 子群 {0,4,8} 呼应。

练 3.2 ℤ/12 加法群中,阶为 6 的元素有几个?它们生成的子群相同吗?

阶 6 ⟺ gcd(a, 12) = 2 → a ∈ {2, 10},恰 φ(6) = 2 个。⟨[2]⟩ = ⟨[10]⟩ = {0,2,4,6,8,10}——同群不同名。第四章会问:乘法世界里的「同群异名」有几个?答案 φ(阶)。

习题

第二章 同余与剩余类习题课四 单位群

练 4.1 写出 (ℤ/12ℤ)× 的全部元素,并列乘法表的核心行([5] 行与 [7] 行)。

与 12 互素:{[1], [5], [7], [11]}(φ(12) = 4)。[5] 行:5×5 = 25 ≡ 1、5×7 = 35 ≡ 11、5×11 = 55 ≡ 7 → [5] 行 = {5, 1, 11, 7}。[7] 行 = {7, 11, 1, 5}。四阶群且每非单位元阶 2 ——「Klein 四元群」的数论化身(对比 (ℤ/10)× 循环!同为 4 元却不同构)。

练 4.2 证明:n 为奇数时 [2] ∈ (ℤ/nℤ)×,并求 [2] 在 mod 15 下的逆元。

奇 ⟹ gcd(2, n) = 1。2−1 mod 15 = 8(16 ≡ 1)。

习题

第二章 同余与剩余类习题课五 消去律

练 5.1 解 6x ≡ 9 (mod 15)。

g = gcd(6, 15) = 3 | 9 ✓。除以 3:2x ≡ 3 (mod 5);2−1 ≡ 3(2×3 = 6 ≡ 1)→ x ≡ 9 ≡ 4 (mod 5)。升回:x ≡ 4, 9, 14 (mod 15)——三个解 = g。

练 5.2 证明:ab ≡ 0 (mod n) 且 gcd(a, n) = 1 ⟹ b ≡ 0 (mod n)。这在 n 合数时为什么重要?

消去律①直接版;合成数模的零因子(如 mod 6 的 [2][3] = [0])正是因为因子不可逆才得以存在——「无零因子 ⟺ 每个非零可逆 ⟺ 域」(素数模)。

习题

第二章 同余与剩余类习题课六 物不知数〔大衍〕

练 6.1 韩信点兵:士兵三三数剩 1、五五数剩 2、七七数剩 3,最少多少人?

x ≡ 1(3), 2(5), 3(7)。用开关元 70, 21, 15 加权合成:1×70 + 2×21 + 3×15 = 70 + 42 + 45 = 157,「除百零五」:157 − 105 = 52。验:52 = 3×17 + 1 ✓、52 = 5×10 + 2 ✓、52 = 7×7 + 3 ✓。答 52。

练 6.2 「今有数不知总,以五减之无余,以七减之无余,以九减之余一」——求最小。

x ≡ 0(5), 0(7), 1(9)。先并前两条:x ≡ 0 (mod 35)。x = 35k ≡ 1 (mod 9):35 ≡ 8 ≡ −1 → −k ≡ 1 → k ≡ −1 ≡ 8 (mod 9)。x = 35×8 = 280 ≡ 280 − 279 = 1 (mod 9)?280 − 31×9 = 280 − 279 = 1 ✓。答 280。

习题

第二章 同余与剩余类习题课七 CRT 联立方程

练 7.1 解 x ≡ 3 (mod 4),x ≡ 1 (mod 7),x ≡ 2 (mod 9)。

模两两互素,M = 252。逐步并:x = 3 + 4k ≡ 1 (mod 7) → 4k ≡ −2 ≡ 5 (mod 7);4−1 ≡ 2(8 ≡ 1)→ k ≡ 10 ≡ 3 (mod 7) → x ≡ 3 + 12 = 15 (mod 28)。并入第三条:x = 15 + 28t ≡ 2 (mod 9):15 ≡ 6、28 ≡ 1 → 6 + t ≡ 2 → t ≡ 5 (mod 9) → x = 15 + 140 = 155 (mod 252)。验:155 = 4×38+3 ✓、= 7×22+1 ✓、= 9×17+2 ✓。

练 7.2 x ≡ 2 (mod 6),x ≡ 4 (mod 8) 有解吗?用「影子相容性」说清原因。

两模不互素:需 mod 2 的影子一致:2 ≡ 0 (mod 2),4 ≡ 0 (mod 2) ✓ 相容。降为互素核心:mod 3 与 mod 8:x ≡ 2 (3)、x ≡ 4 (8)。x = 2 + 3k ≡ 4 (8) → 3k ≡ 2 (8) → k ≡ 6×3−1;3−1 mod 8 = 3(9 ≡ 1)→ k ≡ 6 (mod 8) → x = 20 (mod 24)。答 x ≡ 20 (mod 24)。教训:非互素模先查影子相容、再降模化素。

习题

第二章 同余与剩余类习题课八 大衍求一术〔大衍〕

练 8.1 《数书九章》气题简化版:求乘率 k 使 38k ≡ 1 (mod 17)。

奇数 P = 38 mod 17 = 4。求 4−1 (mod 17):17 = 4×4 + 1 → 1 = 17 − 4×4 → k ≡ −4 ≡ 13。验:38×13 = 494 = 29×17 + 1 ✓。乘率 13。

练 8.2 用大衍总数术的完整流程解:x ≡ 1 (mod 4)、x ≡ 4 (mod 9)、x ≡ 3 (mod 25),列「衍数—奇数—乘率—用数」四行账。

M = 900。衍数:225, 100, 36;奇数:225 mod 4 = 1 → 乘率 1;100 mod 9 = 1 → 乘率 1;36 mod 25 = 11 → 求 11−1 (mod 25):11×16 = 176 = 7×25 + 1 → 乘率 16。用数:225, 100, 576。总数 = 1×225 + 4×100 + 3×576 = 225 + 400 + 1728 = 2353;满 900 去之:2353 − 1800 = 553。验:553 = 4×138+1 ✓ = 9×61+4 ✓ = 25×22+3 ✓。答 x ≡ 553 (mod 900)。

习题

第二章 同余与剩余类习题课九 Wilson 定理

练 9.1 用配对法验证 10! ≡ −1 (mod 11)。

配对:2×6 = 12 ≡ 1;3×4 = 12 ≡ 1;5×9 = 45 ≡ 1;7×8 = 56 ≡ 1。剩 1 与 10:总积 ≡ 10 ≡ −1 ✓。程序对账:10! = 3628800 = 329891×11 − 1 ✓。

练 9.2 证明:p 奇素数时 (p − 3)! ≡ 1 (mod p)?——先算 (p−2)! ≡ 1,再除以 p−1(≡ −1)得 (p−3)! ≡ −1?独立推导 (p−3)! 的影子。

(p−2)! ≡ 1(Wilson 除以 −1 的逆即 −1:(p−2)! = (p−1)!/(p−1) ≡ (−1)×(−1) = 1)。(p−3)! = (p−2)!/(p−2) ≡ 1 × (p−2)−1;(p−2) ≡ −2 → 逆 ≡ −2−1;2−1 = (p+1)/2 → (p−3)! ≡ −(p+1)/2 (mod p)。验 p = 13:11! ≡ 1;10! ≡ −7 ≡ 6。程序对账:10! = 3628800 mod 13 = 6 ✓。

习题

第二章 同余与剩余类习题课十 Fermat 与快速幂

练 10.1 求 3302 mod 5 与 21000 mod 13。

3 mod 5:φ = 4,302 = 4×75 + 2 → 32 = 9 ≡ 4。2 mod 13:φ = 12,1000 = 12×83 + 4 → 24 = 16 ≡ 3。答 4 与 3。

练 10.2 用快速幂全程演算 5117 mod 11(列阶梯:51 → 52 → …)。

阶梯自乘(每步 mod 11):51 = 5;52 ≡ 3;54 ≡ 32 = 9;58 ≡ 81 ≡ 4;516 ≡ 16 ≡ 5;532 ≡ 25 ≡ 3;564 ≡ 9。117 = 64 + 32 + 16 + 4 + 1,点将相乘:9 × 3 × 5 × 9 × 5 → 9×3 = 27 ≡ 5;5×5 = 25 ≡ 3;3×9 = 27 ≡ 5;5×5 = 25 ≡ 3。答 3。复核(阶法):ord(5) = 5(5 → 3 → 4 → 9 → 1),117 ≡ 2 (mod 5) → 5117 ≡ 52 ≡ 3 ✓ 两法一致。

习题

第二章 同余与剩余类习题课十一 φ 函数与欧拉定理

练 11.1 求 φ(2024) 与 φ(2025)。

2024 = 23×11×23:φ = 2024×(1/2)×(10/11)×(22/23) = 880。2025 = 34×52:φ = 2025×(2/3)×(4/5) = 1080。

练 11.2 证明:n > 2 时 φ(n) 为偶数。

若 n 有奇素因子 p:φ(pk) = pk−1(p−1) 含偶因子 p−1。若 n = 2k(k ≥ 2):φ = 2k−1 偶。n = 1, 2 是仅有的 φ 为奇者。

习题

第二章 同余与剩余类复盘:错题归档与三问自测

三问自测

第一问 · 定义关:「[a]·[b] 与代表元选取无关」依赖哪条定理?——定理 2.2.2 ③(乘法保真):良定义性的全部依据。

第二问 · 证明关:CRT 证明中开关元 P = nu 为什么「在 m 世界亮 1、在 n 世界亮 0」?Bézout 在哪一步进场?——u 取 n mod m 的逆元(gcd(n, m) = 1 保证存在)。

第三问 · 结构关:项链证明里「轨道大小只能是 1 或 p」用的是什么?合成数模下会出什么岔子?——Lagrange 定理(轨道大小整除 p);合成数模的轨道可以是真因子大小,p | ap − a 失效(反例:23 ≡ 0 ≢ 2 mod 4?23 = 8 ≡ 0 (mod 4),2 ≢ 0 ✓ 反例成立)。

错题归档表

错题错因归类对应讲义重做日期
   影子相容漏查 / 逆元算错 / 开关元配错权 / 快速幂阶梯未降模§     
      §     

本章必背证明三条:CRT(开关元合成)、Fermat 项链、Wilson 配对。第三章将把「域 F_p」请上台:有域在手,多项式方程的根数将有铁律。

格物札记

第二章 同余与剩余类格物札记① 从《孙子算经》到《数书九章》:大衍求一术的千年接力〔大衍〕

从「物不知数」到「大衍求一术」,中间隔了近八百年——这条接力赛的每一棒都值得记录:

接力赛的四个棒次〔大衍〕

第一棒 · 《孙子算经》(约 4–5 世纪):提出物不知数,给出特例的解法与答案 23——但止步于「术」,没有一般方法。

第二棒 · 唐宋历算家:历法推算上元积年(从某个理想纪元到当年的天数)天然是联立同余——历法的需求把问题从趣题推向生产。一行、曹士蒍等历算家在实践中使用同余技巧。

第三棒 · 秦九韶《数书九章》(1247):大衍总数术横空出世——任意个模数(甚至不互素!先「化约」成互素定数)、求乘率的标准算法(求一术)、完整的合成流程。这是一套可执行的程序,比欧洲早五百余年。

第四棒 · 高斯《算术研究》(1801):以同余记号重述并证明一般定理(今称 CRT)——Euler 与 Lagrange 皆有前驱工作,高斯给出的是首个完整的一般性证明。东西方在此合流。

八百年接力:从一道趣题到一般定理〔大衍〕 约 4 世纪 《孙子算经》 物不知数,答 23 唐宋 历法推上元 需求牵引 1247 秦九韶《数书九章》 大衍总数术 · 求一术 1801 Gauss《算术研究》 同余记号 · 一般证明 1592 年程大位《算法统宗》把解法编成口诀诗——算法的「传播层」与「证明层」自古分工
图 2-19 大衍接力:趣题(孙子)→ 需求(历家)→ 算法(秦九韶)→ 定理(高斯)。求一术的求逆元步骤与今日的扩展 Euclid 算法逐行同构。

最令人感慨的是秦九韶的处境:《数书九章》成书于战乱流离之中(序言自述「际时狄患,历岁遥塞」),大衍术却处理着连欧洲要等高斯才严格化的一般情形——数学的火种,最怕的不是难,而是断。

格物札记

第二章 同余与剩余类格物札记② 群论如何照亮数论:从 Lagrange 定理到 Fermat、Wilson

本章的三颗定理珠子——Fermat、Euler、Wilson——在高斯的折叠世界里各自闪耀了两百年。而现代群论给它们装上了同一盏灯:

群论的统一账本

① Lagrange 定理(元素阶整除群阶)⟹ a 的阶 | φ(n) ⟹ aφ(n) ≡ 1——Euler 定理是 Lagrange 的一行推论,Fermat 是 p 素数时的特例;
② 配对(对合)论证:G 的元素与其逆元配对,落单者恰是自逆元——Wilson 的舞会就是单位群的 involutions 清点;
③ 轨道计数:群作用把集合切成等大轨道——项链证明里「轨道大小 1 或 p」的纪律,全部来自 Lagrange。

一盏灯照三颗珠:群论视角下的第二章定理 群 G Lagrange 定理 Fermat 小定理 阶 | p−1 ⟹ ap−1​ ≡ 1 Euler 定理 阶 | φ(n) ⟹ aφ(n)​ ≡ 1 Wilson 定理 自逆元恰 ±1 ⟹ 配对积 −1 项链证明 轨道大小 1 或 p
图 2-20 一灯三珠:Lagrange 的「阶整除」与「自逆清点」是全部三个证明的共同光源。第四章将把这盏灯调到最亮——循环群理论将证明这样的生成元永远存在。

历史的次序值得咀嚼:先有定理(1640–1770),后有语言(群论,19 世纪)。Galois 与 Abel 的时代,这些同余事实正是抽象群概念的子宫——数论不是「应用」了群论,而是孕育了它。在第 2.6 节学的每一条群论,都是从这个章节数回去的历史反方向。

综合站

第二章 同余与剩余类章小结:知识图谱与方法表

本章把第一章的余数从「下脚料」升格为「代数主角」:折叠合法(等价关系)→ 加法成群 → 可逆者结群 → 模素数成域 → 联立可解(CRT)→ 幂有周期(Fermat/Euler)→ 判素有门(MR)。

知识图谱(文字版)

结构层:同余 2.2 → 剩余类 2.3 → 加法群 2.4 → 单位群 2.5 → 环与域 2.7(素性 ⟺ 域)。
定理层:Lagrange 2.6(阶整除)→ 消去律 2.8 → CRT 2.10 ↔ 大衍求一术 2.11〔大衍〕→ Fermat 2.13 → Euler 2.14 → φ 公式 2.15。
出口层:快速幂 2.16 → Miller–Rabin 2.17〔密码〕→ RSA 地基(0.6 节兑现)。

必背证明三条(合书重写级)

定理核心动作页码
中国剩余定理开关元 P、Q 合成 + 互素迫唯一2.10
Fermat 小定理项链轨道:大小 1 或 p2.13
Wilson 定理逆元配对,落单者 ±12.12

两件兵器交给第三章:域 F_p(素性 ⟺ 域,消去律全通)与φ 函数与缩系(多项式求根的计数工具)。

综合站

第二章 同余与剩余类思想卡:折叠——无限整数的有限肖像

思想卡 · 二

肖像与本人

ℤ/nℤ 是全体整数的「有限肖像」:细节尽失(无法从 [7] 读出 7),骨架犹存(加乘关系原样保留)。现代代数的核心动作——同构、商结构、模运算——全部始于这一步:敢把「不相等」的算作相等,只要这种「视而不见」有纪律。

同余的纪律由定理 2.2.2 立法:加乘可照搬,除法要审查。而 CRT 更进一步:一个折叠世界可以拆成几个更小的折叠世界的乘积——肖像可以分块保存。这正是「大」数算不动时「小」模并行干的活:RSA 的解密加速(中国剩余定理版 RSA)天天在用。

一语蔽之:折叠不是丢失,而是选择看清什么。

思想卡的边界同样重要:折叠丢掉了「大小」——5 与 105 在 mod 10 下同影,但 105 是 5 的 21 倍。凡涉及「多少倍」的问题(估值、单调性)不能只靠影子;数论的美妙恰恰在于:多少」的信息常常以出人意料的方式藏在影子的组合里——第五章的 Gauss 引理就是一次精彩的「影子计数还原真身」。

综合站

第二章 同余与剩余类挑战一 Wilson 定理项链证明的完整书写

2.12 节给了配对证明的全文。本挑战换一条组合路——反方向跑项链账,把「素数 ⟺ 阶乘 ≡ −1」的等价性两头补齐:

步 1(逆元配对的组合表述) 把 (ℤ/pℤ)× 的逆元配对视为「 involutions 清点」:证明「自逆元素恰两个」等价于「x2 ≡ 1 (mod p) 恰两根 x = ±1」。提示:x2 − 1 = (x − 1)(x + 1),域中乘积为零 ⟺ 因子为零(域无零因子——2.7 节)。

步 2(连乘的组织) 把 (p − 1)! 的 12(一般 p − 1)个因子按「自逆者 | 其余对中」重新组织乘积,严格写出每对的乘积 ≡ 1 的理由(a·a−1 = 1 是定义还是定理?——定义:逆元的定义)。

步 3(合成方向:−1 ⟹ 素数) 设 n 合数且 (n − 1)! ≡ −1 (mod n),导出矛盾。分情况:n = ab,2 ≤ a < b < n 时 a 与 b 都出现在 (n−1)! 中 → n | (n−1)! → (n−1)! ≡ 0 ≠ −1;n = a2(a 素,n > 4)时 a 与 2a 都 ≤ n − 1 → a2 = n | (n−1)!。n = 4 手工验:3! = 6 ≡ 2 (mod 4) ≠ −1。

步 4(Gauss 的推广,选做) 证明:p ≡ 1 (mod 4) 时 ((p−1)/2)!2 ≡ −1 (mod p);p ≡ 3 (mod 4) 时 ≡ 1 (mod p)。提示:((p−1)/2)! ≡ ∏(QR)——每个 QR 都是两个 ±a 的平方,配对 (a, p−a)。

TheBook 评语:步 4 是第五章的伏笔——((p−1)/2)! 的影子由平方剩余决定,而 Gauss 引理将证明它 ≡ ±1,正负由 p mod 4 决定。此题做好,第五章开篇即高屋建瓴。

综合站

第二章 同余与剩余类挑战二 非互素模联立的相容条件与 CRT 推广

模不互素时 CRT 失效,但不是全失效——相容的联立仍有解。本挑战把边界走全:

步 1(相容条件) 证明:x ≡ a (mod m)、x ≡ b (mod n) 有解 ⟺ a ≡ b (mod gcd(m, n))。提示:有解时 a − b 被 m、n 整除故被 gcd 整除;反之用 Bézout:g = um + vn,构造 x = a + m·t,解 m·t ≡ b − a (mod n)。

步 2(解数) 相容时解在 mod lcm(m, n) 下唯一。验证:x ≡ 2 (mod 6)、x ≡ 4 (mod 8) 的解 x ≡ 20 (mod 24)(习题课七 7.2)。

步 3(一般定理) 陈述并对任意多个模证明:x ≡ a_i (mod m_i)(i = 1..k)有解 ⟺ 两两满足步 1 的相容条件;有解则 mod lcm(m1,…,m_k) 唯一。

步 4(秦九韶的「化约」) 秦九韶处理非互素模的办法是「化约」成互素定数:对 m1 = 4、m2 = 8 化约成 4 与 2?——不对,应保信息:验证 x ≡ a (mod 4)、x ≡ b (mod 8) 的信息恰等价于 x ≡ b (mod 8)(强条件吸收弱条件,当 4 | 8)。给出一般规则:m | n 时条件 (mod m) 可删当且仅当与 (mod n) 的影子相容。

TheBook 评语:现代教科书常略去非互素情形,但「相容条件 = gcd 整除影子差」恰是 CRT 的代数心脏——环同构 ℤ/mn ≅ ℤ/m × ℤ/n 的完整版是:像 = {影子对 : mod g 分量相等}。步 4 则是工程师的实际做法:合并条件、降低系统模数。

综合站

第二章 同余与剩余类实验:模幂时钟——快速幂的折半跳舞

实验目标:把快速幂的「折半跳舞」画成时钟轨道——看指数的二进制如何决定轨迹,看 Fermat 周期如何把长舞变短舞。

def mpow_trace(a, n, p):     # 快速幂 + 轨迹记录
    r, a, trail = 1, a % p, [(1, a)]
    while n:
        if n & 1: r = r*a % p
        a = a*a % p; n >>= 1
        trail.append((r, a))
    return trail

for step in mpow_trace(2, 100, 13):
    print(step)   # 观察平方链 2,4,3,9,3,9,3 与累乘链的「跳舞」

观察任务:①平方列 2, 4, 3, 9, 3, 9, 3——从第三格起在 3 与 9 之间跳(24 = 3 → 32 = 9 → 92 = 3):周期 2 的「平方舞」;②把模换成 11、底换成 5,平方列 5, 3, 9, 4, 5, 3, …——周期 5(ord(5) = 5):舞曲长度 = 元素的阶;③猜想:平方舞的周期 = ord(a) 的 2-幂部分如何行为?记录观察,第四章 4.2 节将给出精确语言(阶)。

平方舞:mod 13,底 2 的自乘轨道 2 4 3 9 3 ²² ²² 自第三格起 3 ↔ 9 循环:2⁴ ≡ 3 后,平方列进入周期 2 的舞曲 舞曲长度由「阶」决定——第四章将证明它必整除 p − 1
图 2-21 平方舞轨道:快速幂的每一格都是一次「平方 + 降模」,轨道的循环性是 Fermat 定理的动态版本。
综合站

第二章 同余与剩余类章测试与评讲

T1(10 分) 求 3100 的个位数字。

mod 10:3 的幂循环 3, 9, 7, 1 周期 4;100 ≡ 0 (mod 4) → 3100 ≡ 1。个位 1。

T2(14 分) 解 8x ≡ 12 (mod 28)。

g = 4 | 12 ✓。除以 4:2x ≡ 3 (mod 7);2−1 ≡ 4 → x ≡ 12 ≡ 5 (mod 7)。升回:x ≡ 5, 12, 19, 26 (mod 28)——四个解 = g。

T3(18 分) 用 CRT 判断 260 − 1 能被 63 整除吗?写出完整论证。

63 = 9 × 7。mod 9:26 = 64 ≡ 1 → 260 = (26)10 ≡ 1 → 260 − 1 ≡ 0 ✓。mod 7:23 = 8 ≡ 1 → 260 ≡ 1 ✓。两条影子都是 0,CRT 合成 → 63 | 260 − 1 ✓。

T4(18 分) 求最小的正整数 n 使 φ(n) = 10,并说明唯一性与否。

与第一章习题课九 9.1 同源:n = p9(512)或 p4q(最小 24×3 = 48)。答 48;不唯一(512 也行),但 48 最小。

T5(18 分) 用大衍求一术解:x ≡ 5 (mod 7),x ≡ 3 (mod 11)。列「衍数—奇数—乘率—用数—总数」五步账。

M = 77。衍数:11, 7;奇数:11 mod 7 = 4、7 mod 11 = 7;乘率:4−1 ≡ 2 (mod 7)(8 ≡ 1)、7−1 ≡ 8 (mod 11)(56 = 55+1);用数:22, 56。总数 = 5×22 + 3×56 = 110 + 168 = 278 ≡ 278 − 3×77 = 47 (mod 77)。验:47 = 7×6+5 ✓ = 11×4+3 ✓。答 47。

T6(22 分) 证明:p 素数、0 < k < p 时 C(p, k) ≡ 0 (mod p)。并由此解释 (1 + x)p ≡ 1 + xp (mod p)(第三章 Frobenius 的序曲)。

C(p,k) = p!/(k!(p−k)!):分子有因子 p,分母与 p 互素(p 素且各项 < p)→ p 整除商。二项式定理 mod p:中间项全消,只剩首尾。

评讲要点

T1–T2 查折叠基本功与消去纪律(解数 = g);T3 查 CRT 的「逐影子验证」用法——它是大数整除性判定的标准姿势;T4 查 φ 公式的组合面;T5 查求一术完整流程(古代算法的现代执行);T6 是第三章的桥——「素数的二项式性质」。总分 100,70 分以上进入第三章。

第三章

同余方程与多项式

在有限世界里解方程:线性同余方程有完整判据,模 p 是域让多项式根的个数不超过次数(Lagrange)。xp−1−1 完全分裂、Frobenius 映射、二项式系数 mod p——有限域的代数在此成形。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
讲义

第三章 同余方程与多项式3.1 导引:在有限世界里解方程

整数世界里,解方程是一件奢侈的事。3x = 2 没有整数解;x2 + y2 = 13 有没有整数解?要费一番功夫。但在有限世界——固定一个模数 n,把整数折到 {0, 1, …, n−1} 这个小小的圆环上——情况截然不同:候选解只有 n 个。原则上,逐个代入总能验个水落石出。

于是「解方程」这件事在有限世界里获得了新的生命。把等号换成同余号,我们问的是:

3x ≡ 2 (mod 7) 有没有解?有几个?

答案:x = 3 就命中了,因为 3·3 = 9 ≡ 2 (mod 7)。而在整数世界里,3x = 2 永远无解。同一个方程,两种世界,两种命运——这正是本章要系统研究的对象:同余方程。

整数世界:3x = 2 模 7 世界:3x ≡ 2 (mod 7) 0 1 2 3 4 5 x = 2/3 没有整数落在「2/3」处 —— 无解 0 → 0 1 → 3 2 → 6 3 → 2 4 → 5 5 → 1 6 → 4 ×3
左:整数直线上 2/3 处空无一人;右:模 7 的钟面上,映射 x ↦ 3x 恰好在 x = 3 处击中 2——3·3 = 9 ≡ 2。有限世界的好处是:任何点都逃不过检查。
本章路线图:先把线性同余方程 ax ≡ b (mod n) 彻底解决(存在性、解数、通解公式);再升级到多项式同余方程,请出本章主角——Lagrange 多项式定理(域上 n 次方程至多 n 个根);然后一路收割:完全分裂、Wilson 的代数再证、Frobenius 映射、Lucas 定理,最后落到现代接口 LCG 随机数。
为什么「候选只有 n 个」如此重要?因为它让穷举成为合法的证明手段。在整数世界,「对所有 x 验证」是不可能完成的任务;在 ℤ/nℤ 里,它只是一张 n 行的表。数论在有限世界里的许多定理,本质上是「用组合数表代替无穷枚举」的艺术。
讲义

第三章 同余方程与多项式3.2 线性同余方程 ax≡b(n):解的存在性

最简单的非平凡同余方程是线性的:

ax ≡ b (mod n),其中 a, b, n 为整数,n ≥ 1。

按定义,x 是解当且仅当 n 整除 ax − b,即存在整数 y 使 ax − b = ny,整理为

ax − ny = b。

左边是 a 与 n 的一个线性组合——第一章的 Bézout 恒等式立刻接管局面:a 与 n 的全部线性组合恰好是 gcd(a, n) 的全部倍数。于是判据一步到位:

定理(线性同余方程的存在性) 记 g = gcd(a, n)。方程 ax ≡ b (mod n) 有解当且仅当 g 整除 b。

证明 (⟹)若 x 是解,则 n | (ax − b),而 g | n 且 g | a,故 g | ax − b,特别地 g | b。(⟸)设 g | b。由 Bézout,存在 u, v 使 au + nv = g。两边乘 b/g:a·(ub/g) + n·(−vb/g) = b。于是 x0 = ub/g 满足 ax0 ≡ b (mod n)。∎

证明顺手送给我们一个构造性的解:x0 = u·(b/g),其中 u 是 au ≡ g (mod n) 的系数——这正是第二章「大衍求一术」计算乘率的那一步。求根问题与求逆问题在此会师:特别地,当 g = 1 时方程 ax ≡ b (mod n) 的唯一解就是 x ≡ a−1b,即「乘上 a 的逆元」。

ax ≡ b (mod n) 的判据流程:g = gcd(a, n) g 是否整除 b ? 否 是 无解 左边永远是 g 的倍数 有解,共 g 个 x = x₀ + k·(n/g) k = 0,…,g−1;特例 g = 1(a 与 n 互素):恰一解 x ≡ a−1​·b (mod n)
线性同余方程的完整判据:答案藏在 gcd 里。Bézout 恒等式不仅判断有无解,还直接给出解本身。
对比记忆:在整数方程 ax = b 中,「a 整除 b」是有解条件,且解唯一;在模 n 世界,「g = gcd(a, n) 整除 b」是有解条件,且解有 g 个。模越大越「拥挤」,公因子越多解越多——这与直觉相反,却是消去律退化的直接后果。
讲义

第三章 同余方程与多项式3.3 线性同余方程:解的个数与通解公式

存在性解决了,接下来数一数:有解时究竟有几个解?答案干净利落——恰好 g = gcd(a, n) 个,而且它们排成一条等差数列。

定理(解数与通解) 设 g = gcd(a, n) 且 g | b,x0 是一个特解。则模 n 的全部解恰为
x ≡ x0 + k·(n/g) (k = 0, 1, …, g−1),

即模 n 意义下恰有 g 个互不相同的解。

证明 先验证这些的确是解:a(x0 + k·n/g) = ax0 + k·(a/g)·n ≡ ax0 ≡ b (mod n),因为 a/g 是整数,k·(a/g)·n 是 n 的倍数。再证不漏:设 ax ≡ ax0 (mod n),即 n | a(x − x0)。令 d = n/g,则 g | a,写 a = g·a′,于是 d·g | a′·g·(x − x0),约去 g 得 d | a′(x − x0)。由 gcd(a′, d) = 1(已把 a、n 的公因子全部约掉),消去律给出 d | x − x0,即 x = x0 + k·d。而模 n 而言 k 只给出 g 个不同余的值(k 与 k + g 相差 n)。∎

例 解 4x ≡ 2 (mod 6)。这里 g = gcd(4, 6) = 2,g | 2 ✓,故有解且恰 2 个。除以 g:2x ≡ 1 (mod 3)。2 的逆元是 2(2·2 = 4 ≡ 1),故 x0 ≡ 2·1 = 2 (mod 3),取特解 x0 = 2。通解 x = x0 + k·(n/g) = 2 + k·3,模 6 意义下得 x ≡ 2, 5 (mod 6)。检验:4·2 = 8 ≡ 2 ✓,4·5 = 20 ≡ 2 ✓,其余四类 0, 1, 3, 4 代入均不为 2。两解与判据「恰 g = 2 个」严丝合缝。
4x ≡ 2 (mod 6):两个解落在同一「轨道」上 0 2 4 6 8 10 x ≡ 2 x ≡ 5 (mod 6) 相邻解相距 n/g = 3 在模 6 的折返意义下,8 与 2 同余、10 与 4 同余——金色两点就是全部解(g = 2 个)
通解公式 x = x0 + k·(n/g) 的几何形象:解在整数轴上以 n/g 为间距铺开,模 n 折返后恰出现 g 次。
证明的核心动作是「约掉 g 再用消去律」:gcd(a′, n/g) = 1 这一约化把一般情形归到互素情形。这种「先除以最大公因子、化归到干净情形」的手法,会在本章反复出现——包括 Lagrange 定理的证明里。
讲义

第三章 同余方程与多项式3.4 同余方程组:CRT 的一般形式

第二章我们用「大衍求一术」解过《孙子算经》的名题。现在把它写成标准定理,并看清代数骨架。

定理(中国剩余定理,一般形式) 设 m1, m2, …, m_k 两两互素,M = m1m2⋯m_k。则同余方程组
x ≡ b1 (mod m1), x ≡ b2 (mod m2), …, x ≡ b_k (mod m_k)

在模 M 意义下恰有一解:

x ≡ b1M1y1 + b2M2y2 + ⋯ + b_kM_ky_k (mod M),

其中 M_i = M/m_i,而 y_i 满足 M_iy_i ≡ 1 (mod m_i)(由两两互素,y_i 必存在——这正是 3.2 的特例 g = 1)。∎

证明思路(开关元) 构造 M_iy_i 这组「探针」:M_iy_i 在模 m_i 时等于 1,在模 m_j(j ≠ i)时含因子 M_i(被 m_j 整除)而等于 0。于是 Σ b_iM_iy_i 在模 m_i 时只剩下 b_i·1,其余项全部「熄灭」——每个方程各取所需,互不干扰。唯一性由「两解之差被每个 m_i 整除 ⟹ 被 M 整除」得到。

这个证明是组合式的:k 个「正交探针」张成一个坐标系,x 的各分量 b_i 可以独立调节——好比混音台上 k 个独立的推子。CRT 断言:两两互素时,模 M 的世界与直积 (ℤ/m1)×(ℤ/m2)×⋯ 完全等同(环同构,见札记②)。

CRT 的开关元构造:每路探针只在自己的模上「亮」 探针 M₁y₁ 1 0 0 模 m₁ 上 探针 M₂y₂ 0 1 0 模 m₂ 上 探针 M₃y₃ 0 0 1 模 m₃ 上 组合 x = b₁·(第一行) + b₂·(第二行) + b₃·(第三行):第 i 路只对模 m_i 有贡献
「探针」M_iy_i 是一组正交开关:在自家模上为 1,在别家模上为 0。任意需求 (b1, b2, b3) 都能由它们线性拼出。
若模数不两两互素呢?判据来自 3.2 的推广:方程组相容当且仅当对每对 (i, j) 有 b_i ≡ b_j (mod gcd(m_i, m_j));有解时模 lcm(m1,…,m_k) 恰有一解。例 3 将实战演练。
讲义

第三章 同余方程与多项式3.5 多项式同余方程:f(x)≡0(p) 的根

线性只是一次多项式。本章真正的主角是一般的多项式同余方程:

f(x) ≡ 0 (mod p), f 为整系数多项式,p 为素数。

例如 f(x) = x2 + 1,模 5 时逐个代入:02+1=1,12+1=2,22+1=5≡0 ✓,32+1=10≡0 ✓,42+1=17≡2。根为 x ≡ 2, 3 (mod 5)——注意 3 ≡ −2,两根关于 0 对称,这是「平方方程根成 ±对」的普遍现象。

模素数 p 做多项式,最幸福的一点是:域公理全部成立——加减乘畅通无阻,非零元都可除。这使我们在中学里学的多项式代数(因式定理、根的个数论)几乎原封不动地搬过来。但有一处天壤之别:根可能比次数多吗?中学代数说「n 次方程至多 n 个根」,那是实数世界的法律;在模合数的世界里它会破产(下一页的反例),而模素数时它依然屹立——这正是 Lagrange 定理。

同一个 f(x) = x² + 1,在不同模下的根 模 3 x = 0, 1, 2 无根 模 5 x = 2, 3 2 个根 = 次数 模 13 x = 5, 8 2 个根 = 次数 模 7 x = 0,…,6 无根 根的存在与否取决于模数 —— 「5 = 1 + 4」「13 = 4² + (−3)²」的身影将在 3.13 与第五章现身
f(x) = x2 + 1 的根随模数变脸:模 5、模 13 有两根,模 3、模 7 颗粒无收。这背后藏着「p ≡ 1 (mod 4)」的深刻规律,第五章揭晓。
枚举法的合法性:模 p 只有 p 个候选,逐个代入就是完备检验。但当 p 很大或次数很高时,我们需要结构性定理——不必枚举就能断言「根至多几个」「何时恰有多少个」。这正是接下来三页的使命。
讲义

第三章 同余方程与多项式3.6 代数速成:环、域与多项式环——ℤ/pℤ 是域

把代数结构说清楚,定理才站得稳。三层台阶:

环 集合 R 配备加法与乘法,满足:加法构成交换群(有零元、有负元);乘法有结合律与单位元;分配律成立。若乘法还交换,称交换环。典型:ℤ、ℤ/nℤ、整系数多项式环 ℤ[x]。
域 交换环中每个非零元都有乘法逆元。典型:ℚ、ℝ、ℂ——以及今天的明星 ℤ/pℤ(p 素数)。
命题 ℤ/nℤ 是域 ⟺ n 是素数。

证明 n 素时,任一非零类 a(即 gcd(a, n) = 1)由 Bézout 给出逆元(第二章)。反之若 n = ab 为合数(1 < a, b < n),则类 a 非零,却对任何 x 都有 ax ≠ 1:否则 ab·x ≡ b,即 0 ≡ b (mod n),与 0 < b < n 矛盾。∎

域与环的分水岭是消去律:在域中,a ≠ 0 且 ab = ac 强制 b = c(两边乘 a−1);在一般环中可以失效——模 8 时 2·3 = 6 与 2·7 = 14 ≡ 6 相等,但 3 ≠ 7。第一章 3.3 证明里的「约分」动作,本质上就是在使用消去律;现在我们知道它的家:消去律住在域里。

代数结构的阶梯 ℤ/nℤ,n 合数(如 ℤ/8ℤ) 环:2·3 ≡ 2·7 而 3 ≠ 7 交换环:加法群 + 结合分配 ℤ、ℤ/nℤ、ℤ[x] 都在这里 ℤ/pℤ,p 素数(记作 F_p) 域:非零元皆可逆,消去律成立 向上每一步都在「补公理」:补齐逆元,就补齐了中学代数的全部武器
从环到域:只差「每个非零元可逆」一条。素数模恰好处在域的位置——这是 Fermat、Euler、Gauss 们的工作世界,今人记作 F_p。
记号约定:p 素数时,我们把 ℤ/pℤ 写作 F_p(finite field,有限域),并说「在 F_p 上考虑多项式 f(x)」。这一字之改,宣告中学代数全面回归:F_p 与 ℚ 一样是域,凡「只用加减乘除」证明的代数事实,对 F_p 一律有效。
讲义

第三章 同余方程与多项式3.7 Lagrange 多项式定理:根不超过次数

现在是全章的中心定理。它之优美,在于用一条几乎「显然」的归纳,守住了中学代数最有用的经验法则。

定理(Lagrange,1770) 设 F 是域,f(x) 是 F 上的 n 次多项式(n ≥ 1,首项系数非零)。则方程 f(x) = 0 在 F 中至多有 n 个根。

取 F = F_p,立刻得到:模素数 p 时,n 次同余方程至多 n 个根。域是本质——离开域,定理当场破产:

反例(合数模) 模 8 时,x2 − 1 ≡ 0 有四个根:x = 1, 3, 5, 7(奇数的平方都 ≡ 1 (mod 8))。二次方程四个根!罪魁是 ℤ/8ℤ 不是域:2·4 ≡ 0 却 2 ≠ 0、4 ≠ 0——存在「非零零因子」,因式分解 (x−1)(x+1) ≡ 0 不再强制某个因子为零。而在域里,非零因子的乘积不可能为零,法律的漏洞被堵死。
x² − 1 的根:域内守法,环内越界 根的个数 4 根 1,3,5,7 ℤ/8ℤ(环) 2 根 1, 6 F_7(域) 2 根 2, 3 F_5(域) 次数红线 2
二次式 x2 − 1:在域 F5、F7 中根数 ≤ 2(红线之下);在环 ℤ/8ℤ 中四个根集体越线。Lagrange 定理是「域」的名片。
历史注脚:Lagrange 在 1770 年的《数论随笔》里系统研究了模 p 的二项方程,这一定理是他那部著作的基石之一,也是 Gauss《算术研究》第 42 目的起点。「根不多于次数」这一朴素信念,在域的世界里终于成为定理。
讲义

第三章 同余方程与多项式3.8 Lagrange 定理的证明:因式分解路线

证明只需要两块砖:因式定理与数学归纳。

引理(因式定理) F 是域,f(x) 是多项式,a ∈ F。则 f(a) = 0 ⟺ f(x) = (x − a)·q(x),其中 q 是低一次的多项式。

证明:用带余除法以 (x − a) 去除 f(在域上合法,因除数首项系数 1 可逆),得 f(x) = (x − a)q(x) + r,r 为常数。代入 x = a:f(a) = r。故 f(a) = 0 ⟺ r = 0。∎

定理的证明 对次数 n 归纳。n = 1 时 f(x) = ax + b(a ≠ 0),恰一根 x = −b/a。设结论对 n − 1 次成立。若 f(n 次)在 F 中没有根,结论显然。若有根 a,由因式定理 f(x) = (x − a)q(x),q 恰 n − 1 次。对任何根 b ≠ a:0 = f(b) = (b − a)q(b),而域中 b − a ≠ 0 可逆(且非零因子之积非零),故 q(b) = 0——b 是 q 的根。由归纳假设,q 至多 n − 1 个根,于是 f 至多 1 + (n − 1) = n 个根。∎

三处用到「域」:带余除法(首一除式总可做)、消去律(b − a 可逆)、非零因子之积非零。环里三处都会断裂——反例中 (x−1)(x+1) ≡ 0 (mod 8) 而 x = 3 使两因子 2 与 4 全非零。

证明的归纳阶梯:每找到一个根,就剥掉一层因式 f 是 n 次:根 ≤ n? 找到根 a → 因式定理:f = (x − a)·q,q 是 n−1 次 其余的根全都是 q 的根(域中 b − a ≠ 0 可约去) 归纳假设:q 的根 ≤ n − 1 1 + (n−1) = n ✓ 阶梯的每一级只做一件事:剥掉一个线性因式,把问题降一次
因式分解路线:根 a 一现身,f 就分解出 (x − a),剩下的根由低一次的 q 接管。归纳自动闭合。
这个证明与第一章 FTA 唯一性证明共用同一副骨架:「找到一个结构单元 → 剥离它 → 归纳收尾」。数学中大量「计数型定理」都长这样。下一页我们看到定理最华丽的化身:一个 n 次多项式在域中「用满」全部 n 个根时,会发生完全分裂。
讲义

第三章 同余方程与多项式3.9 完全分裂:xp−1−1 在模 p 下的秘密

Fermat 小定理说:p 素数、p ∤ a 时 ap−1 ≡ 1 (mod p)。翻译成多项式的语言:

f(x) = xp−1 − 1 在 F_p 中有 p − 1 个根:1, 2, …, p − 1。

而 f 的次数恰是 p − 1——根数顶满了次数!Lagrange 定理允许至多 p−1 个,Fermat 保证至少 p−1 个,于是:

定理(完全分裂) 在 F_p 中,
xp−1 − 1 ≡ (x − 1)(x − 2)⋯(x − (p − 1)) (mod p)。

即 f 的全部根恰好把它分解成一次因式之积,一个不多、一个不少。∎(严格说:两边都是 p−1 次多项式、首一,且都恰以 1,…,p−1 为全部根,其差至多 p−1 次却有 p−1 个根,由 Lagrange 只能是零多项式。)

「顶格」在数学里往往是财富的信号:取 x = 0 立得 Wilson 定理(3.10);比较两边的系数还能榨出更多秘密(3.11 的交错和、第四章原根的存在性)。一个多项式能被自己的根们瓜分殆尽,称其完全分裂(splits completely)——这是域上多项式最理想的形态。

x⁶ − 1 在 F_7 中完全分裂:六个根坐满六个席位 1 2 3 4 5 6 中心 x⁶−1 六个非零元 个个是根 次数 = 6 席位 = 6 x⁶−1 ≡ (x−1)(x−2) (x−3)(x−4) (x−5)(x−6)
模 7 的钟面上,六个非零元无一例外地使 x6 ≡ 1。根数顶满次数,多项式被瓜分干净——完全分裂。「顶格 = 财富」:等号两边还藏着 Wilson 与交错和。
顺带留意:0 不是根(0p−1 − 1 = −1 ≠ 0)。所以在 F_p 中 xp−1 − 1 的根集 = 乘法群 F_p^× 的全部元素——多项式的根与群的元素在此画上等号,群论与多项式论的握手从这一页开始。
讲义

第三章 同余方程与多项式3.10 求和公式:1+2+⋯+(p−1)≡0 与 −1 的藏身处

完全分裂是一座富矿,先采第一桶:比较 xp−1 − 1 与 (x−1)(x−2)⋯(x−(p−1)) 的中间系数之前,先看看「根之和」。按 Vieta 定理(根之和 = −(xp−2 的系数)),而左边 xp−1 − 1 根本没有 xp−2 项——所以根之和必为 0:

1 + 2 + ⋯ + (p − 1) = p(p−1)/2 ≡ 0 (mod p)。

(p 为奇素数时 (p−1)/2 是整数,故整个和是 p 的倍数;对 p = 13 验算:78 = 6·13 ✓。)同理根之平方和、立方和都是 0——左边那些系数位置全空着。这个「空位即零」的现象可以推广成漂亮的一般规律:

定理(幂和判零) p 素数,1 ≤ k ≤ p − 2。则 1k + 2k + ⋯ + (p−1)k ≡ 0 (mod p)。

证明(群论一瞥) 取一个「生成元」——暂时承认存在 a 使 1, a, a2, …, ap−2 恰是 F_p 的全部非零元(第四章将证明原根存在)。则幂和 = ak(1 + ak + a2k + ⋯ + a(p−2)k),等比求和 = ak·(a(p−1)k − 1)/(ak − 1)。由 Fermat,a(p−1)k ≡ 1;由 k ≤ p−2 知 p−1 ∤ k,故 ak ≠ 1,分母非零可除。整个式子 ≡ 0。∎

p = 13 时的幂和对账表:何时归零,何时藏 −1 k = 1 Σ = 78 78 = 6·13 ≡ 0 12 ∤ 1 k = 2 Σ = 650 650 = 50·13 ≡ 0 12 ∤ 2 k = 3 Σ = 6084 6084 = 468·13 ≡ 0 12 ∤ 3 k = 12 每项 ≡ 1 Σ = 12 ≡ −1 (mod 13) 12 | 12
规律一目了然:(p−1) 整除 k 时和 ≡ −1(每项都贡献 1),其余一律 ≡ 0。「−1」只在 k = p−1 这一个位置现身。
注意定理范围写成 1 ≤ k ≤ p − 2 而非 k ≤ p−1:k = p−1 时每项 ap−1 ≡ 1,和 ≡ p − 1 ≡ −1。「0」是常态,「−1」是例外——而这唯一的例外,恰是下一页 Wilson 定理的代数入口。
讲义

第三章 同余方程与多项式3.11 Wilson 定理的代数再证:交错和路线

第二章我们用「舞会配对」给过 Wilson 定理一个组合证明。完全分裂给出一条惊人的短路——一行代入:

定理与证明(Wilson,代数版) p 素数 ⟺ (p − 1)! ≡ −1 (mod p)。

(⟸ 即第二章配对证明,此处证 ⟹。)在恒等式 xp−1 − 1 ≡ (x−1)(x−2)⋯(x−(p−1)) (mod p) 中取 x = 0:左边 = −1;右边 = (−1)(−2)⋯(−(p−1)) = (−1)p−1(p−1)!。p 为奇素数时 (−1)p−1 = 1,立得 (p−1)! ≡ −1 (mod p)。∎

同一个定理,两条路:配对路线在乘法群里找各自的舞伴 a·a′ ≡ 1,落单的 1 与 p−1 相乘得 −1;多项式路线把 (p−1)! 认作完全分裂的常数项。一个用「群」,一个用「环」,在 −1 处会师——这正是现代数学的趣味:同一事实在不同结构下的两个化身。

Wilson 的两条路:配对与多项式在 −1 处会师 组合路线(第二章) 舞会配对:a·a′ ≡ 1 逐一抵消 代数路线(本章) 完全分裂取 x = 0:读出常数项 (p − 1)! ≡ −1 (mod p) 落单的舞伴 = 常数项里的 −1 顺带的礼物:常数项还给出 (p−1)!·(−1)p−1​ 的符号账,p = 2 时单独验算依然成立
同一座山峰的两条登顶线:组合证明看清「谁落单」,代数证明看清「常数项藏了什么」。
「交错和」还有一面镜子:把 F_13 的非零元分成二次剩余 QR = {1, 3, 4, 9, 10, 12} 与非剩余 QNR 两组,两组各自的和都等于 39 ≡ 0 (mod 13)——连分组之后都归零!这类「分而仍零」的现象是第五章研究二次剩余时的第一缕线索,届时将反复出现。
讲义

第三章 同余方程与多项式3.12 降次与配方:解多项式同余方程的技巧

有了理论,回到手艺。解高次同余方程的两把常用扳手:

扳手一:因式降次 一旦试出一个根 r,就用 (x − r) 去除 f,把方程降一次。二项方程 xd ≡ 1 (mod p) 特别好用:x3 − 1 = (x−1)(x2 + x + 1)。二次因子再用配方:x2 + x + 1 = 0 等价于 (2x + 1)2 ≡ −3 (mod p)(两边乘 4 配方)。于是解的存在归结为「−3 能否开平方」。
扳手二:配方通式 p 为奇素数时 2 可逆,x2 + bx + c ≡ 0 ⟺ (2x + b)2 ≡ b2 − 4c。二次方程的全部困难都浓缩成一件事:右边是不是二次剩余——这正是第五章的主题。所以本章解二次方程时,我们诚实使用「枚举 + 判别」;第五章将给出系统的判据(Euler 判据与互反律)。
例(预演) x3 ≡ 1 (mod 13):x3 − 1 = (x − 1)(x2 + x + 1)。二次因子配方:(2x+1)2 ≡ −3 ≡ 10 (mod 13)。逐一检查 12, 22, …, 62:62 = 36 ≡ 10 ✓。故 2x + 1 ≡ ±6,x ≡ 5·7 = 35 ≡ 9 或 x ≡ (−7)·7 = −49 ≡ 3 (mod 13)(7 是 2 的逆)。三根 {1, 3, 9}——与「gcd(3, 12) = 3 ⟹ 三根」的理论预告完全一致(3.16 详述)。
x³ ≡ 1 (mod 13) 的降次流水线 x³ − 1 ≡ 0 (mod 13) 三次方程 试出根 1 (x − 1)(x² + x + 1) 降为二次因子 配方 (2x + 1)² ≡ 10 开平方:6² ≡ 10 x ≡ 1, 9, 3 (mod 13) —— 恰 3 根 每一步只做一件事:降一次、或把困难推给「能否开平方」
降次流水线:试根 → 剥因式 → 配方 → 开平方。最后一步遇到的问题「10 是不是平方」,正是第五章互反律要彻底解决的问题。
这份「流水线」与中学解方程的套路一模一样——因为我们已经在域上工作。差别只剩一处:域是有限的,「开平方」是否有解成了真正的数学问题,而不是理所当然。从这个角度看,第五章是本章配方技巧的自然续集。
讲义

第三章 同余方程与多项式3.13 丢番图方程的门槛:x2+y2=p 的同余侧写

费马晚年给友人的信里写下:奇素数 p 能写成两平方之和 p = a2 + b2 ⟺ p ≡ 1 (mod 4)。完整定理(含唯一性)在第五章之后才够得着;但它的同余侧影本章就能看清一半。

考虑同余方程 x2 + y2 ≡ 0 (mod p)。若存在解 (x, y) 且 p ∤ y,则 (xy−1)2 ≡ −1 (mod p):−1 在 F_p 中可开平方。反之,若 −1 有平方根 r,则 (r, 1) 就是解。于是:

命题 p 为奇素数。x2 + y2 ≡ 0 (mod p) 有一个 y ≢ 0 的解 ⟺ −1 是模 p 的二次剩余。

而 −1 可开平方当且仅当 p ≡ 1 (mod 4)(配对论证:模 4 意义下平方只能取 0 或 1,故 (p−1)/2 为偶数时……完整两行证明留给习题课)。这解释了 3.5 的那张表:x2 + 1 ≡ 0 在模 5、模 13(皆 ≡ 1 (mod 4))下有两根,在模 3、模 7(皆 ≡ 3 (mod 4))下无根。数 p = 13 = 22 + 32 提供了活样本:22 + 32 = 13 ≡ 0 (mod 13),且 3·2−1 = 3·7 = 21 ≡ 8,而 82 = 64 ≡ −1 (mod 13) ✓。

x² + y² ≡ 0 (mod p):两种命运 p = 13 ≡ 1 (mod 4) 2² + 3² = 13 ≡ 0 ✓ 8 = 3·7 是 −1 的平方根 8² = 64 = 65 − 1 ≡ −1 ✓ p = 7 ≡ 3 (mod 4) 平方值只能取 {0, 1, 2, 4} 两平方之和永不为 7 的倍数 除非 x ≡ y ≡ 0 同余世界里「−1 开不开得了方」,由 p 模 4 的余数一票决定
模 13 的世界里有 (±2, ±3) 与 (±3, ±2) 共八组解;模 7 的世界里只有零解。「p ≡ 1 (mod 4)」是那把总钥匙。
为什么说这只是「门槛」?同余侧的解 (2, 3) 恰好给出整数的 22 + 32 = 13,纯属巧合——一般地,x2 + y2 ≡ 0 (mod p) 的解未必满足 x2 + y2 = p(解可以任意大)。真正的「两平方定理」需要第五章的互反律与「下降法」配合,是全书的远期支线。
讲义

第三章 同余方程与多项式3.14 组合数论初谈:二项式系数 mod p

多项式世界里最著名的恒等式非二项式定理莫属。模 p 之下它骤然变美:

命题(「新手梦幻恒等式」之母) p 素数,则 (1 + x)p ≡ 1 + xp (mod p),更精确地:对 1 ≤ k ≤ p − 1 有 C(p, k) ≡ 0 (mod p)。

证明 C(p, k) = p(p−1)⋯(p−k+1) / k!。分子是 p 的倍数;分母 k! 的每个因子都小于 p,故 p ∤ k!。分子里的 p 与分母互素,约分后 p 依然整除整个分数——即 C(p, k) 是 p 的倍数。∎

于是模 p 时中间的 C(p,1), …, C(p,p−1) 全部熄灭,二项式定理坍缩成两行:

(1 + x)p ≡ 1 + xp (mod p)。

这不是 p 的专利,而是一般规律(对任意 k)的特例:C(n, k) mod p 由 n 与 k 的 p 进制数字决定——这就是Lucas 定理(综合站挑战二给出组合证明)。先尝一口:C(10, 3) = 120 ≡ 1 (mod 7);而 10 = (13)7、3 = (03)7,按位组合 C(1,0)·C(3,3) = 1 ✓。数字对数字,逐位算,妙不可言。

帕斯卡三角 mod 2:金色 = 奇数,谢尔宾斯基三角形浮现 第 0 行:1 第 2 行:1 0 1 第 4 行:1 0 0 0 1 第 6 行:1 0 1 0 1 0 1 C(4,2)=6 ≡ 0 → 空位
偶数熄灭、奇数点亮:把帕斯卡三角的每个数按奇偶染色,出现了自相似的分形图案——「按 p 进制逐位取 C」的 Lucas 定理解释了一切。
组合数论的核心观察:整除性把组合数压成图案。模 2 是谢尔宾斯基三角,模 3、模 5 各有各的花纹。一个纯算术的命题(何时被 p 整除)背后站着一个几何对象——这是「组合数学 × 数论」联姻的第一个脚印。
讲义

第三章 同余方程与多项式3.15 Frobenius 映射:x↦xp 的代数之美

把 3.14 的坍缩式 (1 + x)p ≡ 1 + xp 换一种读法:映射 σ : x ↦ xp 竟然保加法:

(x + y)p ≡ xp + yp (mod p)。

在整数世界这是彻头彻尾的错误((2+3)5 = 3125 ≠ 275 = 25 + 35);在模 5 的世界里它突然成立:75 ≡ 7·74 ≡ 7·1 = 2?等等,直接算:75 mod 5 = 25 mod 5 = 32 mod 5 = 2;而 35 + 45 mod 5 = 3 + 4 = 7 ≡ 2 ✓。坍缩式让中间系数集体归零,恒等式起死回生。

命题(Frobenius 映射) p 素数。映射 σ : F_p → F_p,σ(x) = xp 满足:σ(x+y) = σ(x) + σ(y),σ(xy) = σ(x)σ(y),σ(1) = 1。即 σ 保持全部域运算。又由 Fermat 小定理,对每个 a ∈ F_p 有 σ(a) = a——在 F_p 上 σ 就是恒等映射。∎

「保运算的映射」是现代代数的核心词汇:群里叫同态,环/域里叫同态或自同构。σ 在 F_p 内看起来无所作为(恒等),但在更大的域 Fp2、Fpn(第四章后会见到的「扩域」)里,σ 是货真价实的非平凡对称——现代数论(乃至椭圆曲线密码学)的机器上,Frobenius 是转得最勤的那颗齿轮。

同一映射 σ(x) = x⁵,两个世界的两副面孔 整数世界 σ(2) = 32,σ(3) = 243 σ(2+3) = 3125 ≠ 275 = σ(2)+σ(3) 不加也不乘:普通的幂函数 F_5 世界 σ(2) = 32 ≡ 2,σ(3) ≡ 3 σ(2+3) = σ(0) = 0 = 2 + 3 ≡ σ(2)+σ(3) 保加保乘:域的自同构(恒等) 二项式系数 mod p 集体归零,是 σ 获得「保加法」超能力的全部原因
幂映射在整数世界平庸,在 F_p 世界封神:C(p,k) ≡ 0 让 (x+y)p 的中间项消失,σ 摇身变为保运算的结构映射。
视角升级:过去我们问「这个数是多少」,现在我们问「这个映射保什么结构」。σ 保加法、保乘法、固定每一个元素——三句话勾勒出一个代数对象的完整画像。第四章将看到另一类映射 x ↦ xk(幂映射在乘法群上的作用),它们将把「原根与指标」变成一台对数计算器。
讲义

第三章 同余方程与多项式3.16 解数统计:同余方程解的个数的组合意义

现在把本章散落的观察收拢成一条定理——它是「根数」问题的完整答案,也是第四章指标法的地基。

定理(二项同余方程的解数) p 素数,d ≥ 1,p ∤ a。记 g = gcd(d, p − 1)。

① 方程 xd ≡ 1 (mod p) 恰有 g 个根。

② 方程 xd ≡ a (mod p) 有解 ⟺ a(p−1)/g ≡ 1 (mod p);有解时恰有 g 个根。∎(证明的完整版在第四章指标法处一气呵成,这里先验证它多么好用。)

对账(p = 13,p − 1 = 12):x3 ≡ 1 有 gcd(3, 12) = 3 个根 {1, 3, 9} ✓(3.12 的配方亲手算出)。x3 ≡ 2:判据要求 212/3 = 24 = 16 ≡ 3 ≢ 1,无解 ✓(枚举确认)。x3 ≡ 8:84 = 4096 = 315·13 + 1 ≡ 1,有解且恰 3 个——枚举给出 {2, 5, 6} ✓。x4 ≡ 2 (mod 11):gcd(4, 10) = 2,判据要 210/2 = 25 = 32 ≡ 10 ≢ 1 (mod 11),无解 ✓;x4 ≡ 3 (mod 11):35 = 243 ≡ 1 (mod 11),有解恰 2 个 {4, 7} ✓。

p = 13 的解数全景:d 从 1 到 12 根数 1 2 3 4 5 6 7 8 9 10 11 12 顶格:12 根 金色 = d 整除 12:根数顶格为 d;暗色 = 仅平凡根 x = 1 —— d 的「因子地位」决定根数
xd ≡ 1 (mod 13) 的根数随 d 变化:12 的因子(金色)处根数顶格为 d,其余位置只有平凡根。解数统计本质上是 gcd(d, p−1) 的画像。
组合意义:g = gcd(d, p−1) 个解,等于说「d 次幂映射把乘法群压缩 g 倍,每个像点上方恰有 g 层」。一句话概括:幂映射的重数 = 像的可除性。第四章将用指标(离散对数)把这句话变成可计算的公式。
讲义

第三章 同余方程与多项式3.17 现代接口:线性同余随机数生成器——LCG 的设计〔密码〕

计算机需要「随机数」,但机器只会做确定性的算术。最老牌的方案是线性同余生成器(LCG):

xn+1 ≡ a·x_n + c (mod m),

——一个线性同余方程的迭代!本章的武器立刻能分析它。设计者最关心周期:序列迟早进入循环(抽屉原理,第二章),最好循环遍历全部 m 个状态(满周期)。Hull–Dobell 定理(1958)给出满周期的充要条件:

满周期三条件 ① gcd(c, m) = 1;② m 的每个素因子 q 都整除 a − 1;③ 若 4 | m,则 4 | (a − 1)。
对账 取 m = 16。LCG(5, 3, 16):gcd(3,16)=1 ✓;16 的素因子只有 2,2 | 4 ✓;4 | 16 且 4 | 4 ✓——满周期。从 x0 = 3 出发实测:3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3——十六个状态全部走遍,周期 16 ✓。LCG(7, 5, 16):条件③要 4 | 6,不成立——实测从 3 出发:3, 10, 11, 2, 3,周期只有 4,四个状态的小圈子。三条件缺一不可。
LCG 轨道:满周期走遍 16 宫格,小周期原地打转 LCG(5,3,16):16 步遍历全部状态 0123 4567 891011 12131415 3 10 11 2 LCG(7,5,16):周期 4 四格死循环
左:满周期 LCG 的轨道盖满 4×4 状态格;右:条件③被破坏后轨道缩成四状态小环。参数之差,周期之别。
安全警示:LCG 快而省,但完全可预测——看到几个输出就能解出参数(这正是解线性同余方程!),后续序列一览无余。密码学级的随机数必须换成「非线性」引擎(第四章的 Diffie–Hellman 与第五章之后的数论构造会给出真材实料)。LCG 的正确身份:模拟与抽样用的「伪随机」,而非保密用的「真随机」。
讲义

第三章 同余方程与多项式3.18 本章总结与方法表

本章完成了从「算术」到「代数」的关键一跃:把同余世界升格为域 F_p,让中学多项式代数全面回归,再靠 Lagrange 定理守住「根不超过次数」的底线。

问题答案 / 方法背后的定理
ax ≡ b (mod n) 有解吗?g = gcd(a, n) 整除 bBézout + 存在性定理
有几个解?恰 g 个:x = x0 + k·(n/g)约去 g + 消去律
联立方程组呢?两两互素模 M 下唯一解(探针构造)CRT 一般形式
n 次方程最多几个根?至多 n 个(域上!)Lagrange 多项式定理
xp−1 − 1 的根?全部非零元——完全分裂Fermat + Lagrange
(p−1)! ≡ ?≡ −1(取 x = 0 读常数项)Wilson,代数版
xd ≡ a 有几个根?gcd(d, p−1) 个(若可解)解数统计定理
(1+x)p ≡ ?≡ 1 + xpC(p,k) ≡ 0 → Frobenius
第三章在五站旅程中的位置:承上启下的「代数枢纽」 整除 第一章 同余 第二章 方程 域 F_p Lagrange 原根 → 互反律 带走三件工具:域 F_p、因式降次、解数 = gcd(d, p−1) —— 第四章的指标法就建在它们之上
方程一站把前两章的「群」与「环」炼成了「域」,并预演了第四、五章的主旋律:原根(幂和判零)、二次剩余(配方与 −1 的命运)。
回头看 3.1 那张对比图:整数世界的 3x = 2 无解,模 7 世界命中 x = 3。本章结束时我们不仅会解它,还能回答「几个解」「为何这么多/少」「何时顶格」。下一站,乘法群 F_p^× 的完整解剖——原根与指标,把幂运算变成一台可查表的对数计算器。
例题

第三章 同余方程与多项式例1 线性同余方程:解 4x≡2(6)

题 解同余方程 4x ≡ 2 (mod 6)。

规范解答 按三步流程走:

第一步(判存在) g = gcd(4, 6) = 2,且 2 | 2 ✓,方程有解,解数恰为 2。

第二步(求特解) 用 Bézout 显式求 u:解 4u + 6v = 2,即 2u + 3v = 1,取 u = 2, v = −1(4·2 − 6 = 2 ✓)。按公式 x0 = u·(b/g) = 2·1 = 2。检验:4·2 = 8 ≡ 2 (mod 6) ✓。

第三步(写通解) x ≡ x0 + k·(n/g) = 2 + 3k (mod 6),k = 0, 1。故 x ≡ 2, 5 (mod 6)。

复核 4·5 = 20 = 3·6 + 2 ≡ 2 ✓。剩余四类 0, 1, 3, 4 代入:4·0=0, 4·1=4, 4·3=12≡0, 4·4=16≡4,均不为 2。恰 2 解,与判据「解数 = g = 2」完全一致。

三步流程卡:判存在 → 求特解 → 写通解 ① g = gcd(a, n) g | b ?→ 解数 = g ② 求 u:au + nv = g x₀ = u·(b/g) ③ x = x₀ + k·(n/g) k = 0, 1, …, g − 1 本题:g = 2,u = 2,x₀ = 2,n/g = 3 → 解 {2, 5}(模 6)
线性同余方程的「万能三步」:全部信息都在 g 与 Bézout 系数里。
第二步也可以直接走「大衍求一术」:先约 g 得 2x ≡ 1 (mod 3),再求 2 的乘率(22 ≡ 1,乘率 2),x0 ≡ 2·1 = 2 (mod 3)——殊途同归。两条路都是 Bézout 的化身。
例题

第三章 同余方程与多项式例2 判据三连:无解、一解、多解的辨析

题 判别下列方程解的情况并求解:(a) 4x ≡ 3 (mod 6);(b) 3x ≡ 2 (mod 7);(c) 4x ≡ 2 (mod 6)。

解 (a) g = gcd(4, 6) = 2,3 不被 2 整除——无解。理由具象化:4x 恒为偶数,8x−3… 更直接:4x ≡ 3 (6) 要求 6 | 4x − 3,而 4x − 3 是奇数,不可能被偶数 6 整除。左边的「公因子 2」锁死了右边。

(b) g = gcd(3, 7) = 1,g | 2 ✓,恰一解。3 的逆元 mod 7:3·5 = 15 ≡ 1,逆为 5。x ≡ 5·2 = 10 ≡ 3 (mod 7)。检验:3·3 = 9 ≡ 2 ✓。

(c) 即例 1:x ≡ 2, 5 (mod 6),恰两解。

方程g = gcd(a, n)g | b ?解数解
4x ≡ 3 (6)22 ∤ 30无
3x ≡ 2 (7)11 | 213
4x ≡ 2 (6)22 | 222, 5
三种局面各就各位:无解—一解—多解,判据只有一条「g 是否整除 b」,解数只有一种算法「就是 g」。一张表把线性同余方程的全部可能性收编完毕——这正是好定理的样子:把散乱的案例压缩成一条判据。
例题

第三章 同余方程与多项式例3 非互素模联立:含公因子的方程组

题 解方程组 x ≡ 2 (mod 6),x ≡ 5 (mod 9)。注意两个模不互素——CRT 的「两两互素」前提失效了,怎么办?

相容性检查 g = gcd(6, 9) = 3。判据:两余数必须模 g 相等。2 mod 3 = 2,5 mod 3 = 2 ✓,相容(若第二式是 x ≡ 4 (9),则 4 mod 3 = 1 ≠ 2,立判无解)。

求解 由第一式写通解 x = 2 + 6t,代入第二式:

2 + 6t ≡ 5 (mod 9) ⟹ 6t ≡ 3 (mod 9)。

这是线性方程,g = gcd(6, 9) = 3 | 3 ✓,恰 3 个解。约去 3:2t ≡ 1 (mod 3),t ≡ 2 (mod 3),即 t = 2 + 3s。代回:

x = 2 + 6(2 + 3s) = 14 + 18s ⟹ x ≡ 14 (mod 18)。

复核 14 mod 6 = 2 ✓;14 mod 9 = 5 ✓。解在模 lcm(6, 9) = 18 意义下唯一——不互素时,「模 M 唯一」换成「模 lcm 唯一」,其余照旧。

方法论升级:不互素联立 = 相容性检查(模 gcd 比对余数)+ 化归为一次线性方程。「先检查相容,再化归」的两段式,把 CRT 推广到了任意模——这是本章定理语言(3.2 + 3.4 组合拳)的第一次实战胜利。
例题

第三章 同余方程与多项式例4 多项式求根:x2+1≡0(5) 的枚举

题 求 x2 + 1 ≡ 0 (mod 5) 的全部解。

解 二次式,模 5 只有五个候选,逐一开列平方表:

x01234
x20149 ≡ 416 ≡ 1
x2 + 112002

根为 x ≡ 2, 3 (mod 5),恰两个,顶满二次的次数红线(Lagrange 允许至多 2)。

结构注记 3 ≡ −2 (mod 5):两根成 ± 对——x2 + 1 = 0 的根必然如此(若 r2 ≡ −1 则 (−r)2 ≡ −1,且 r ≢ −r 因 p ∤ 2r)。所以枚举其实只需查一半:找到 r = 2,对称根 −2 ≡ 3 自动奉上。

F_5 上的平方值谱:± 对称一目了然 0 1 4 2 = ±根 3 = −2 r 与 −r 关于 0 对称成对出现 F_5 平方表 {0, 1, 4} 中缺席的 2、3,正是「非二次剩余」——第五章的主角提前亮相
五个候选里只有 {2, 3} 击中 −1 ≡ 4,且两根关于 0 对称成对;其余候选 {0, 1, 4} 与目标无缘——「平方值谱」之外的数,正是第五章要请出的非二次剩余。
「x2 + 1 在模 5 有根」等价于「5 = 22 + 12 能写成两平方之和」——3.13 的门槛命题在此现出真身。哪些素数能让 −1 开方?这条线索将一路牵到二次互反律。
例题

第三章 同余方程与多项式例5 Lagrange 定理应用:x3−x≡0(7) 的全部解

题 求 x3 − x ≡ 0 (mod 7) 的全部解,并用 Lagrange 定理解读。

解 先因式分解(在域上合法,就是中学代数):

x3 − x = x(x − 1)(x + 1) = x(x − 1)(x − 6) (mod 7)。

域中乘积为零必须某个因子为零:x ≡ 0, 1, 6。恰 3 个解。

解读 三次方程、三个根——顶格但不算完全分裂:0 也是根,而完全分裂(3.9)特指 xp−1 − 1 型、根恰为全部非零元的情形。若把 0 的因式也收入,x3 − x 在 F_7 中同样被自己的根瓜分干净:x(x−1)(x−6)。Lagrange 定理的两重信息都在:根不越 3 条红线;真到 3 条时,分解必然发生。

顺带一个「换模变脸」的快照:同一个 x3 − x,模 6 时根有几个?x3 ≡ x (mod 6) 对每个 x 都成立(偶数时 x3−x 含因子 2 与 3 的倍数;奇数时 x2 ≡ 1 (mod 24) 的特例版本保 x3−x 被 6 整除)——六个根!二次… 三次方程六根,Lagrange 红线在合数模下彻底失守。红线的辖区,只在域内。
例题

第三章 同余方程与多项式例6 完全分裂:xp−1−1 mod 7 的因式分解

题 在 F_7 中把 x6 − 1 分解为一次因式之积,并验证。

解 3.9 定理直接给出:

x6 − 1 ≡ (x − 1)(x − 2)(x − 3)(x − 4)(x − 5)(x − 6) (mod 7)。

验证一(根) 每个非零元的六次幂都是 1(Fermat):如 26 = 64 = 63 + 1 ≡ 1 ✓,36 = 729 = 7·104 + 1 ≡ 1 ✓。六个根一个不缺。

验证二(系数) 右边展开的 x5 系数 = −(1+2+⋯+6) = −21 ≡ 0 (mod 7),与左边(无 x5 项)吻合;常数项 = (−1)6·6! = 720 = 7·102 + 6 ≡ 6 ≡ −1,与左边常数 −1 吻合——Wilson 定理 mod 7 顺手复核 ✓。

x⁶ − 1 的六个一次因式:根、和、积三重对账 根对账 a⁶ ≡ 1 对 a = 1..6 2⁶ = 64 ≡ 1 ✓ 和对账(x⁵ 系数) −(1+2+⋯+6) = −21 −21 ≡ 0 = 左边系数 ✓ 积对账(常数项) (−1)⁶·6! = 720 720 ≡ −1 (mod 7) ✓ 一个恒等式,三种读法:Vieta 定理把「根」与「系数」焊在一起
展开式与原式逐系数核对:和归零(3.10)、积为 −1(Wilson)——完全分裂把本章的定理串成一条项链。
例题

第三章 同余方程与多项式例7 降次技巧:x3≡1(13) 的全部解

题 求 x3 ≡ 1 (mod 13) 的全部解。

预判 d = 3,g = gcd(3, 12) = 3,方程恰有 3 个根(3.16 定理①)。目标明确:找齐三个。

解 x3 − 1 = (x − 1)(x2 + x + 1)。x = 1 是显根。对二次因子配方(两边乘 4):

4x2 + 4x + 4 ≡ 0 ⟹ (2x + 1)2 ≡ 1 − 4 = −3 ≡ 10 (mod 13)。

查平方表 mod 13:12=1, 22=4, 32=9, 42=3, 52=12, 62=36≡10 ✓。故 2x + 1 ≡ ±6,即 2x ≡ 5 或 2x ≡ −7 ≡ 6。乘 2 的逆(2·7 = 14 ≡ 1,逆为 7):

x ≡ 5·7 = 35 ≡ 9 (mod 13), x ≡ 6·7 = 42 ≡ 3 (mod 13)。

全部解 x ≡ 1, 3, 9 (mod 13)。复核:33 = 27 = 26 + 1 ≡ 1 ✓;93 = 729 = 13·56 + 1 ≡ 1 ✓。

回望流程:判据给出「3 个根」的配额,降次与配方负责把配额领到手。理论定数量、技巧找对象——两者缺一,都不算真正解出方程。
例题

第三章 同余方程与多项式例8 配方法:x2≡a(p) 的尝试与失败启示

题 在 F_7 中解 (a) x2 ≡ 2 (mod 7);(b) x2 ≡ 3 (mod 7)。

解 先建平方值总表(只需算到 3,其余由 ± 对称补齐):

x0±1±2±3
x2 mod 70142

(a) 2 在表中(来自 x = ±3),故 x ≡ 3, 4 (mod 7)。复核:32 = 9 ≡ 2 ✓,42 = 16 = 14 + 2 ≡ 2 ✓。

(b) 3 不在表中(平方值只能取 {0, 1, 2, 4}),故无解。七个候选逐一排除——枚举即完备证明。

失败启示 同一模数之下,有的 a 开得平方、有的开不得:{1, 2, 4} 是「二次剩余」(QR),{3, 5, 6} 是「非剩余」(QNR)。这不是技巧问题,而是 F_7 的结构性事实。三个问题自然涌出:如何不枚举就判定 a 是否 QR?QR 与 QNR 的分布有什么规律?不同素数之间有何关联?——这三问正是第五章的全部议程,互反律将在第三问处轰然登场。

F_7 的平方值谱:QR 金色亮起,QNR 沉入暗色 1 ✓ 2 ✗ 3 ✗ 4 ✓ 6 ✓ 5 ✗ ×7 QR = {1, 2, 4} QNR = {3, 5, 6}
钟面上金暗各半:F_7 的六个非零元恰好三三均分,例 8 的 a = 2 与 3 分居两侧。这个「对半分」在第五章将由 Euler 判据(a(p−1)/2)给出系统解释。
例题

第三章 同余方程与多项式例9 组合数 mod p:C(10,3) mod 7 的对账

题 求 C(10, 3) mod 7,并用 Lucas 定理的「逐位法」对账。

直算 C(10, 3) = 10·9·8 / 6 = 120,而 120 = 17·7 + 1,故 C(10, 3) ≡ 1 (mod 7)。

Lucas 对账 把 n 与 k 写成 7 进制:10 = 1·7 + 3 → (1, 3)7;3 = 0·7 + 3 → (0, 3)7。逐位取组合数再相乘:

C(10, 3) ≡ C(1, 0)·C(3, 3) = 1·1 = 1 (mod 7) ✓

再来一例(得 0 的情形) C(14, 5) = 2002 = 286·7,≡ 0 (mod 7)。逐位:14 = (2, 0)7,5 = (0, 5)7 → C(2, 0)·C(0, 5) = 1·0 = 0 ✓。个位上「5 里取 5」超出了 0 的容量——低位借不出东西,组合数当场清零。

Lucas 定理的一句话版本:C(n, k) mod p = n 与 k 的 p 进制数字逐位组合数之积。它把「大数组合」化归为「逐位小组合」,也让「何时整除 p」一眼看穿:只要 k 的某一位数字大于 n 的对应位,结果就是 0。综合站挑战二将给出它的组合证明——用 Fermat 小定理与本章的完全分裂。
例题

第三章 同余方程与多项式例10 Frobenius:(x+y)5≡x5+y5 的验算

题 在 F_5 中验证 (3 + 4)5 ≡ 35 + 45 (mod 5),并展示中间项的去向。

解 左边:3 + 4 = 7 ≡ 2,25 = 32 ≡ 2 (mod 5)。右边:35 ≡ 3、45 ≡ 4(Fermat),3 + 4 = 7 ≡ 2。两边同为 2 ✓。

中间项去向 按二项式定理完整展开:

(3+4)5 = 35 + C(5,1)·34·4 + C(5,2)·33·42 + C(5,3)·32·43 + C(5,4)·3·44 + 45

五个中间系数 C(5,1) = 5, C(5,2) = 10, C(5,3) = 10, C(5,4) = 5,全是 5 的倍数——每一项都被模 5 吞掉:10·33·42 = 4320 = 864·5 ✓,10·32·43 = 5760 = 1152·5 ✓。中间项不是「约等于零」,是精确地为 5 的倍数。

换一组数再验 (2 + 3)5 = 55 ≡ 0 (mod 5);25 + 35 = 32 + 243 = 275 = 55·5 ≡ 0 ✓——连「和是模的倍数」这一退化情形都严丝合缝。

这个恒等式在 F_p 里对一切 x, y 成立,不是幸运个例。机制只有一个:C(p, k) ≡ 0 (1 ≤ k ≤ p−1)。一个系数消失的定理,换来了整条「保加法」的映射——3.15 已把它升格为 Frobenius 自同构。数值验证是给定理「暖身」,机制才是主角。
例题

第三章 同余方程与多项式例11 解数统计:一张「方程—解数」对账表

题 汇总本章出现过的二项方程,用判据统一对账。

方程g = gcd(d, p−1)判据 a(p−1)/g ≡ 1 ?理论解数实际解
x3 ≡ 1 (13)gcd(3,12) = 3112? 判据平凡(a=1)✓3{1, 3, 9}
x3 ≡ 2 (13)324 = 16 ≡ 3 ≢ 1 ✗0无
x3 ≡ 8 (13)384 = 4096 ≡ 1 ✓3{2, 5, 6}
x4 ≡ 3 (11)gcd(4,10) = 235 = 243 ≡ 1 ✓2{4, 7}
x4 ≡ 2 (11)225 = 32 ≡ 10 ≢ 1 ✗0无
x2 ≡ 3 (7)gcd(2,6) = 233 = 27 ≡ 6 ≢ 1 ✗0无
x2 ≡ 2 (7)223 = 8 ≡ 1 ✓2{3, 4}

读表 七行全部对上:「理论解数」一列由 gcd 与 Euler 型判据一锤定音,「实际解」由枚举或降次配方领出——无一例外。特别留意 x4 ≡ 3 (11) 复核:44 = 256 = 23·11 + 3 ✓,74 = 2401 = 218·11 + 3 ✓。

这张表是第四章的「预告片」:判据 a(p−1)/g ≡ 1 为什么恰好工作?因为乘法群 F_p^× 是循环的,「幂方程」的解数由「指数的整除性」决定。下一章把这套指数语言正式命名为指标(离散对数),解方程从此变成查表做算术。
例题

第三章 同余方程与多项式例12 综合:从线性到多项式的完整求解流程

题 解 3x2 + 2x − 1 ≡ 0 (mod 11)。

第一步(定策略) 模 11 是素数,F_11 是域:配方合法、消去律成立、Lagrange 红线生效(至多 2 根)。

第二步(配方) 两边乘 3 的对偶数 12(即 4·3 = 12 ≡ 1,先乘 4·3 化首项为平方):更直接地按通式 (2ax + b)2 ≡ b2 − 4ac 配方:

(6x + 2)2 ≡ 4 + 12 = 16 ≡ 5 (mod 11)。

第三步(开平方) 查平方表 mod 11:1, 4, 9, 16≡5, 25≡3 → 42 ≡ 5 ✓。故 6x + 2 ≡ ±4。

第四步(解线性方程) 6x ≡ 2 或 6x ≡ −6 ≡ 5。6 的逆:6·2 = 12 ≡ 1,逆为 2。x ≡ 2·2 = 4,或 x ≡ 5·2 = 10。

复核 x = 4:3·16 + 8 − 1 = 55 = 5·11 ✓。x = 10 ≡ −1:3 − 2 − 1 = 0 ✓(对称根藏得深:x = −1 竟是精确根,因 3·1 − 2 − 1 = 0 也整除——多项式恰有整根分解 (3x − 1)(x + 1))。两根 {4, 10},恰 2 个,顶格。

完整求解链:每个环节都是本章一页的缩影 认域 11 素 → F_11 配方 (6x+2)² ≡ 5 开方 4² ≡ 5 (QR) 解线性 x ≡ 4, 10 「开方」环节的绿灯或红灯,分别通向第五章的 QR 判据与互反律 本题绿灯(5 是 QR)→ 两根到手;若红灯,则 Lagrange 保底:根数不会超过 2,但可以是 0
一条方程走完本章全程:域 → 配方 → 开方 → 线性。缺哪环补哪环,每环背后都有一页定理撑腰。
习题

第三章 同余方程与多项式习题课一 线性同余方程

练 1.1 解 6x ≡ 3 (mod 9)。提示:g = gcd(6, 9) = 3,3 | 3 ✓,恰 3 解。约去 g:2x ≡ 1 (mod 3),x0 ≡ 2 (mod 3),通解 x = 2 + 3k。答案:x ≡ 2, 5, 8 (mod 9)。检验:6·5 = 30 = 3·9 + 3 ≡ 3 ✓。

练 1.2 解 10x ≡ 6 (mod 14)。提示:g = 2,约成 5x ≡ 3 (mod 7);5 的逆 mod 7 是 3(5·3 = 15 ≡ 1),x0 ≡ 3·3 = 9 ≡ 2 (mod 7),通解 x ≡ 2, 9 (mod 14)。检验:10·9 = 90 = 6·14 + 6 ✓。

练 1.3 判断有无解:7x ≡ 4 (mod 21)。提示:g = gcd(7, 21) = 7,7 ∤ 4 → 无解。换个看法:7x 是 7 的倍数,7x − 4 ≡ −4 (mod 7) 永不为 0,更不可能被 21 整除。

练 1.4 解 8x ≡ 12 (mod 28),并数一数解的个数与 gcd 的关系。提示:g = 4,12/4 = 3,约成 2x ≡ 3 (mod 7),x0 ≡ 3·4 = 12 ≡ 5 (mod 7)(2 的逆是 4),通解 x = 5 + 7k,模 28 得 x ≡ 5, 12, 19, 26,恰 g = 4 个解。

四道题共用一套「万能三步」:判 g | b → 约去 g 求乘率 → 写通解数一数。解数 = g 这一条,每题都在现场兑现——它不是巧合,是 3.3 定理的化身。
习题

第三章 同余方程与多项式习题课二 解的个数判据

练 2.1 不解方程,只报解数:(a) 15x ≡ 10 (mod 25);(b) 12x ≡ 9 (mod 28);(c) 9x ≡ 12 (mod 15)。提示:(a) g = 5 | 10 → 5 解;(b) g = 4 ∤ 9 → 无解;(c) g = 3 | 12 → 3 解。判据先行,一望即答。

练 2.2 a 取何值时,ax ≡ 1 (mod 35) 恰有一解?提示:g = gcd(a, 35) = 1,即 a 与 35 = 5·7 互素:a 不是 5 的倍数也不是 7 的倍数。乘法群 (ℤ/35)× 有 φ(35) = 24 个成员,个个都可作为 a。

练 2.3 判断 2x ≡ 7 (mod 106) 的解的情况并说明理由。提示:g = gcd(2, 106) = 2,而 2 ∤ 7 —— 无解。最快看法:模 2 下左边 2x ≡ 0、右边 7 ≡ 1,当场矛盾。「数字大」不改变判据,gcd 才是一切。

练 2.3 是一道「陷阱题」:它长得像「唯一解」(人们习惯性认为 2 与大数互素),实际 gcd = 2。线性方程判据只有一条,但算对 g 是它的全部尊严所在。
习题

第三章 同余方程与多项式习题课三 非互素模联立

练 3.1 判断相容性并求解:x ≡ 3 (mod 8),x ≡ 7 (mod 12)。提示:g = gcd(8, 12) = 4;3 mod 4 = 3,7 mod 4 = 3 ✓ 相容。x = 3 + 8t ≡ 7 (12):8t ≡ 4 (12),g = 4 | 4,约成 2t ≡ 1 (3),t ≡ 2 (3),x = 3 + 8·2 = 19,模 lcm(8,12) = 24 唯一。检验:19 mod 8 = 3 ✓,19 mod 12 = 7 ✓。

练 3.2 判断相容性:x ≡ 5 (mod 9),x ≡ 6 (mod 12)。提示:g = 3;5 mod 3 = 2,6 mod 3 = 0,不相等 → 无解。不互素联立的第一步永远是这道「模 gcd 比对」的快检。

练 3.3 一个数除以 6 余 4,除以 10 余 8,除以 15 余 13,求最小的它。提示:三对模的 gcd:gcd(6,10) = 2,4 ≡ 8 ≡ 0 (2) ✓;gcd(6,15) = 3,4 ≡ 13 ≡ 1 (3) ✓;gcd(10,15) = 5,8 ≡ 13 ≡ 3 (5) ✓。相容!注意三式都是「余数比模少 2」:x + 2 同时被 6, 10, 15 整除,即 30 | x + 2,最小正解 x = 28。验算:28 = 4·6 + 4 ✓ = 2·10 + 8 ✓ = 15 + 13 ✓。「不整齐的余数」背后是「整齐的 x + 2」——观察结构胜过套公式。

不互素联立的口诀:先对账(模 gcd),后化归(解线性方程),答案落在 lcm 上。三模联立则两两对账。练 3.3 还展示了高阶技巧:把「余数规律」翻译成整除 statement,一步到位。
习题

第三章 同余方程与多项式习题课四 多项式的根

练 4.1 求 x2 ≡ 1 (mod 8) 的全部解,并解释为什么 Lagrange 定理「管不着」它。提示:奇数平方 ≡ 1 (mod 8),四解 {1, 3, 5, 7}。二次方程四根——因为 ℤ/8ℤ 不是域,红线只在域内生效。

练 4.2 求 x2 + x + 1 ≡ 0 (mod 7) 的全部解。提示:配方 (2x + 1)2 ≡ −3 ≡ 4 (7),±2 → 2x ≡ 1 或 2x ≡ −3 ≡ 4 → x ≡ 4 或 2。两解 {2, 4}。顶格。

练 4.3 求 x3 − 1 ≡ 0 (mod 7) 的全部解。提示:x3 − 1 = (x − 1)(x2 + x + 1);由练 4.2(把 7 换成 7)二次因子在 mod 7 有两根 2, 4。三解 {1, 2, 4}。对账:gcd(3, 6) = 3 ✓ 恰三根。

练 4.4 f(x) = x2 + 3x + 2 在 F_5 中有几个根?在 ℤ/6ℤ 中呢?提示:F_5:f = (x + 1)(x + 2),根 {3, 4}(−1 ≡ 4, −2 ≡ 3),恰两根。ℤ/6ℤ:逐个验 x = 0..5:0→2, 1→6≡0 ✓, 2→12≡0 ✓, 3→20≡2, 4→30≡0 ✓, 5→42≡0 ✓——四根 {1, 2, 4, 5}!非零因子(2·3 ≡ 0)让 (x+1)(x+2) ≡ 0 不再强制单因子为零。

四个练习一条主线:多项式求根在域内是中学代数,在环内是另一个世界。域里靠因式分解与配方;环里只能老实枚举,且根数可以爆表。
习题

第三章 同余方程与多项式习题课五 Lagrange 定理

练 5.1 F_11 上 x4 + 5x2 + 4 有几个根?先推理再验证。提示:x4 + 5x2 + 4 = (x2 + 1)(x2 + 4)。F_11 中 −1 是 QR 吗?平方表 mod 11:{1, 4, 9, 5, 3}——无 10,−1 非 QR,x2 + 1 无根。−4 ≡ 7 是 QR?表中无 7,x2 + 4 无根。故 0 个根。四次方程零根,Lagrange 只给上界不给下界。

练 5.2 证明:F_p 上 n 次多项式若有多于 n 个根,则它必是零多项式(所有系数 ≡ 0)。提示:这正是 3.9 完全分裂证明里用过的推理——f − g 至多 n 个根,除非恒为零。反证即得。

练 5.3 F_7 上是否存在二次多项式恰好有 1 个根?举一例。提示:x2 ≡ 0 只有根 x = 0(域中 x2 = 0 ⟹ x = 0),恰一根——重根只算一个根。另一例:(x − 1)2 = x2 − 2x + 1,根仅 x = 1。「根计重不记重」时恰一根完全可能。

Lagrange 定理给的是天花板不是地板:根数可以是 0 到 n 的任何值(练 5.1 的 0、练 5.3 的 1、例 4 的 2 = 顶格)。什么时候必然顶格?——xp−1 − 1 那样的完全分裂。这个「何时顶格」的追问,通向第四章的循环群解剖。
习题

第三章 同余方程与多项式习题课六 完全分裂

练 6.1 在 F_5 中展开 (x − 1)(x − 2)(x − 3)(x − 4),验证它 ≡ x4 − 1 (mod 5)。提示:逐系数对账:x3 系数 −(1+2+3+4) = −10 ≡ 0 ✓;x2 系数 = 两两乘积和 = 35 ≡ 0 ✓(35 = 5·7);x 系数 = 三三乘积和 = 50 ≡ 0 ✓;常数 (−1)4·4! = 24 ≡ −1 ✓(Wilson mod 5)。

练 6.2 计算 1·2·3·⋯·6 mod 7 与 1·2·⋯·10 mod 11,用两种方法。提示:法一(Wilson):6! ≡ −1 ≡ 6 (7);10! ≡ −1 ≡ 10 (11)。法二(硬乘):720 ≡ 6 (7) ✓;3628800 = 329891·11 − 1 ≡ 10 (11) ✓。

练 6.3 p = 2 时 Wilson 定理还成立吗?xp−1 − 1 的完全分裂呢?提示:1! = 1 ≡ −1 ≡ 1 (2) ✓ 成立。x1 − 1 = x − 1 ≡ x − 1,根集 {1}(F_2 的唯一非零元),完全分裂同样成立——只是「非零元」只剩一个,故事缩短了。

完全分裂的验证套路:根(Fermat 保底)→ 中间系数(幂和归零)→ 常数项(Wilson)。三道练习把 3.9–3.11 的理论链条完整走了一遍——一个恒等式,从头到尾都是练习题,这就是好定理的样子。
习题

第三章 同余方程与多项式习题课七 降次与配方

练 7.1 解 x3 ≡ 8 (mod 13)。提示:x3 − 8 = (x − 2)(x2 + 2x + 4)。试出根 x = 2。配方:(2x + 2)2 ≡ 4 − 16 = −12 ≡ 1 (13),2x + 2 ≡ ±1 → x ≡ −1·7 = −7 ≡ 6 或 x ≡ −3·7 = −21 ≡ 5。三解 {2, 5, 6},与例 11 对账表一致 ✓(判据 gcd(3,12) = 3)。

练 7.2 解 x2 − 4x + 1 ≡ 0 (mod 11)。提示:配方 (2x − 4)2 ≡ 16 − 4 = 12 ≡ 1,2x − 4 ≡ ±1 → x ≡ 5·6 = 30 ≡ 8 或 x ≡ 3·6 = 18 ≡ 7(6 是 2 的逆 mod 11)。检验:64 − 32 + 1 = 33 = 3·11 ✓;49 − 28 + 1 = 22 ✓。

练 7.3 解 x2 + x ≡ 4 (mod 9)。这里模是合数,配方还灵吗?提示:4(x2 + x) ≡ 16,(2x + 1)2 ≡ 17 ≡ 8 (9)。逐一检查平方 mod 9:{0, 1, 4, 7}——8 不在其中,无解。配方在合数模下仍可尝试(乘 4 的可逆性没问题:gcd(4, 9) = 1),但「开平方」的枚举账本要按合数模自己的平方表来。谨慎:配方步骤合法 ⟺ 所乘的系数与模互素。

降次与配方是「域上通吃、环上打折」的技巧:域中二次方程的答案完全由判别式是否 QR 决定;环中即使配方成功,开平方也要重新查表。技巧迁移前,先问一句:我用的每一步除法,除数与模互素吗?
习题

第三章 同余方程与多项式习题课八 组合数 mod p

练 8.1 求 C(7, 2) mod 7 与 C(7, 3) mod 7,并用 3.14 命题解释。提示:C(7,2) = 21 ≡ 0;C(7,3) = 35 ≡ 0。中间系数全部熄灭——素数模的标志。

练 8.2 用 Lucas 逐位法求 C(16, 4) mod 7。提示:16 = (2, 2)7,4 = (0, 4)7 → C(2,0)·C(2,4) = 1·0 = 0。直算验证:C(16,4) = 1820 = 260·7 ✓。

练 8.3 用 Lucas 逐位法求 C(21, 7) mod 7,再用直接计算复核。提示:21 = (3, 0)7,7 = (1, 0)7 → C(3,1)·C(0,0) = 3。直算:C(21,7) = 116280 = 16611·7 + 3 ✓。

练 8.4 (1 + x)6 在 F_3 中的展开式是什么?提示:先按二项式定理写出系数 1, 6, 15, 20, 15, 6, 1,模 3 得 1, 0, 0, 2, 0, 0, 1 → (1 + x)6 ≡ 1 + 2x3 + x6 = (1 + x3)2 (mod 3)。这正是一般规律 (1+x)ab ≡ (1+xa)b 的特例——Lucas 定理的多项式面孔。

Lucas 逐位法的上手诀窍:先把 n 和 k 写成 p 进制,位数对齐(不足补零),再逐位取小组合数。任何一位上 k 的数字大于 n 的数字,答案立刻是 0——低位「借不出人」。
习题

第三章 同余方程与多项式习题课九 Frobenius 映射

练 9.1 在 F_7 中验证 (5 + 4)7 ≡ 57 + 47 (mod 7)。提示:两边都 ≡ 5 + 4 = 9 ≡ 2(Fermat:a7 ≡ a)。左边硬算亦可:(9)7 = 9·(96) ≡ 9·1 = 2 (7) ✓。

练 9.2 证明:σ(x) = xp 保持「减法」,即 (x − y)p ≡ xp − yp (mod p)。提示:σ(x − y) = σ(x + (−y)) = σ(x) + σ(−y) = σ(x) + (−y)p = xp − yp(p 奇时 (−y)p = −yp;p = 2 时 −1 ≡ 1 依然成立)。

练 9.3 F_5 中解方程 x5 = x 的全部解。提示:x5 − x = x(x4 − 1) = x(x − 1)(x + 1)(x2 + 1)。F_5 中 x2 + 1 的根是 ±2(例 4),故解为全部五个元素 {0, 1, 2, 3, 4}——Frobenius 的不动点恰是整个域,这正是 3.15 的「σ = 恒等」。

Frobenius 的三件套:保加法(坍缩式)、保乘法(幂的性质)、不动点 = F_p 全域(Fermat)。三句话写尽一个映射。练 9.2 再送一件「保减法」——其实由保加法自动推出,群论里这类「顺手的小礼物」层出不穷。
习题

第三章 同余方程与多项式习题课十 解数统计

练 10.1 不解方程,报出解数:(a) x5 ≡ 1 (mod 11);(b) x5 ≡ 1 (mod 31);(c) x6 ≡ 1 (mod 13)。提示:(a) gcd(5, 10) = 5 → 5 解;(b) gcd(5, 30) = 5 → 5 解;(c) gcd(6, 12) = 6 → 6 解。三个「5 次单位根」「6 次单位根」的群——第四章将给它们正式的名字。

练 10.2 p = 17 时,x4 ≡ a (mod 17) 对多少个 a(1 ≤ a ≤ 16)有解?提示:g = gcd(4, 16) = 4。幂映射 x ↦ x4 把 16 个非零元压成 16/4 = 4 个像点,每个像点上方 4 层——恰有 4 个 a 有解,每个恰 4 个根。有解判据:a4 ≡ 1 (17)。

练 10.3 x4 ≡ 3 (mod 17) 有解吗?再找出 F_17 中所有「四次幂像点」a(即存在 x 使 a = x4)。提示:判据 34 = 81 = 4·17 + 13 ≡ 13 ≢ 1 (17),不过关 → x4 ≡ 3 无解。像点:由练 10.2 知共 4 个,逐个验证 a4 ≡ 1:14 = 1 ✓,44 = 256 = 15·17 + 1 ✓,134 ≡ (−4)4 = 44 ≡ 1 ✓,164 ≡ (−1)4 = 1 ✓(其余 a4 ≢ 1,可抽查 24 = 16 ≢ 1)。像点集 = {±1, ±4}。

练 10.2–10.3 揭示了幂映射的「分层几何」:x ↦ x4 在 F_17 上是 4 层楼的高塔,塔顶只有 4 个像点 {±1, ±4}。像点个数 = (p−1)/g,层高 = g——这句话是第四章指标法的全部直觉。
习题

第三章 同余方程与多项式习题课十一 综合训练

练 11.1(线性 + 联立) 解方程组 2x ≡ 4 (mod 6),5x ≡ 3 (mod 8)。提示:第一式 g = 2 | 4,约成 x ≡ 2 (3);第二式 g = 1,5 的逆 mod 8 是 5,x ≡ 15 ≡ 7 (8)。联立(互素模):x ≡ 2 (3) 且 x ≡ 7 (8)。x = 2 + 3t ≡ 7 (8):3t ≡ 5,t ≡ 5·3 = 15 ≡ 7 (8)(3 的逆是 3),x = 2 + 21 = 23,模 24 唯一。检验:2·23 = 46 = 7·6 + 4 ✓;5·23 = 115 = 14·8 + 3 ✓;23 mod 3 = 2 ✓、23 mod 8 = 7 ✓。

练 11.2(多项式 + 判据) F_13 中 x6 ≡ 1 的六个根恰为 QR 集 {1, 3, 4, 9, 10, 12}——验证并解释。提示:逐个平方:12=1, 32=9, 42=16≡3, 92=81≡3? —— 81 = 6·13 + 3 ≡ 3?不对,92 = 81 ≡ 3,再平方 32 = 9:94 ≡ 9?慢。x6 = (x2)3:QR 的三次方?更直接:逐个算 x6:16=1 ✓;36 = 729 = 56·13 + 1 ✓;46 = 4096 = 315·13 + 1 ✓;96 = (92)3 = 33 = 27 ≡ 1 ✓;106 = (102)3 = 93 = 729 ≡ 1 ✓;126 = (−1)6 = 1 ✓。六个 QR 全部通过。解释:p = 13 时 x6 = x(p−1)/2,而第五章的 Euler 判据将证明这个量恒为 ±1,且「取 +1」恰好刻画二次剩余——于是 x6 ≡ 1 的解集(六次单位根群)与 QR 集天然重合。这里先把巧合验到手,判据的证明留给第五章。

练 11.3(LCG 逆向) 某 LCG 满足 xn+1 = a·x_n + c (mod 16),已知三个连续输出 3, 11, 7,问这样的 (a, c) 存在吗?提示:列方程 3a + c ≡ 11、11a + c ≡ 7 (16),相减得 8a ≡ −4 ≡ 12 (16)。判据:g = gcd(8, 16) = 8 ∤ 12,无解——三个数不可能出自任何 LCG(16)。这正演示了 LCG 的可验伪性:输出满足刚性线性约束,乱造的数骗不过它。

习题

第三章 同余方程与多项式复盘:错题归档与三问自测

高频错点归档(本章练习中最容易失手的三处):

错点典型症状纠正钥匙
gcd 算错或没算把 2x ≡ 7 (106) 当成有唯一解判据只有一条:g | b;先算 g 再说话
把环当域用在 ℤ/8ℤ 里用「至多两根」Lagrange 红线只挂在域门口
配方乘的系数不可逆模 9 时随手除以 2每一步除法前查 gcd(除数, 模)

三问自测(合上书回答):

一问:4x ≡ 2 (mod 6) 为什么恰有两个解?说出定理名与证明的关键一步。提示:解数定理(3.3);关键:两解之差被 n/g 整除——约去 g 后用消去律。

二问:Wilson 定理的组合证明与代数证明各用了什么结构?提示:乘法群 F_p^× 的配对(群)与 xp−1 − 1 的完全分裂(域上多项式环)。

三问:为什么 xd ≡ 1 (mod p) 的根数恰好是 gcd(d, p − 1)?提示:完整答案在第四章指标法;本章层面可答「幂映射的分层结构」:d 次幂的像点是 (p−1)/g 个,每个上方 g 层。

复盘不是重读,是重问:三个问题对应本章三条主干(线性方程—Lagrange—解数统计)。答不上的页码就是下周的复习清单。
格物札记

第三章 同余方程与多项式格物札记① 秦九韶「正负开方术」与 Horner:多项式求根的东方先声〔少广〕

《数书九章》(1247)少广章中,秦九韶给出高次方程数值解的完整算法——「正负开方术」:反复通过「随乘随加」逐位逼近方程的根。这与西方 1819 年 Horner 发表的方法在算法结构上完全一致,早了近六百年。其核心引擎,就是今天计算机里求多项式值的秦九韶算法(嵌套乘法):

f(x) = 3x4 + 2x3 − x2 + 5 = ((((3x + 2)x − 1)x + 0)x + 5)。

从最内层括号起步,每一步只做「乘 x、加下一系数」:四次乘法、四次加法搞定四次多项式——比逐项展开经济得多。以 x = 2 为例:3 → 3·2+2 = 8 → 8·2−1 = 15 → 15·2+0 = 30 → 30·2+5 = 65。验算:3·16 + 2·8 − 4 + 5 = 65 ✓。

秦九韶算法求 f(2):系数表上的「乘—加」接力 系数 3 2 −1 0 5 ×2 再加 3 8 15 30 65 3·2+2 = 8 → 8·2−1 = 15 → 15·2+0 = 30 → 30·2+5 = 65(f(2) = 65 ✓) 每一格只做「乘 2 加左邻下系数」:n 次多项式 n 次乘法 n 次加法
「乘—加」接力表:正负开方术的核心引擎,与 Horner (1819) 同构。今天的 CPU 求多项式值仍用这套流程。
秦九韶的完整「正负开方术」还包含「随乘随加」过程中逐位试商的根逼近策略(相当于在系数表上做综合除法):先估根的首位,缩根、再估次位……正是「降次」思想(3.12)的数值版。我们第四章解联立一次同余组的「大衍求一术」同样出自《数书九章》——一人贡献了本章两套算法的东方源头。
把求值与求根连起来看:秦九韶算法在 x = r 处做「乘—加」接力时,中间数字恰是 f(x) 除以 (x − r) 的综合除法系数——最后一格是余数 f(r),其余是商的系数。求值即降次:r 是根时,余数为 0,商自动到手。这一「求值 = 带余除法」的等价性,正是因式定理的计算化身。
格物札记

第三章 同余方程与多项式格物札记② 从 Fermat 小定理到有限域:F_p 的完整画像

三章读罢,是时候把 F_p 的「户口档案」整理成一张画像。它有两副面孔:

加法面孔 (F_p, +) 是 p 阶循环群:任何非零元反复自加 p 次回到 0。结构极其简单——所有非零元的加法阶都是素数 p。
乘法面孔 (F_p^×, ·) 是 p − 1 阶交换群:Fermat 小定理 ap−1 ≡ 1 正是「群元素的阶整除群的阶」(第二章 Lagrange 群定理)的特例。这个群是否循环(由单个元素生成全部成员)?——是!第四章将证明这一点,并由此建立「指标」(离散对数)理论。

两副面孔合起来,Fermat、Euler、Wilson、Lagrange(多项式版)四个定理各归其位:

定理居住地一句话本质
Fermat ap−1 ≡ 1乘法群 F_p^×元素阶整除群阶(p − 1)
Wilson (p−1)! ≡ −1F_p^× 的自逆配对自逆元只有 ±1,落单者相乘
Lagrange(多项式)域公理(消去律)n 次至多 n 根,因式定理 + 归纳
CRT环同构 ℤ/mn ≅ ℤ/m × ℤ/n互素模的世界互不干扰
F_p 画像:一座城,两副面孔,四个定理 域 F_p 加减乘除俱全 · p 个元素 加法群 (F_p, +):p 阶循环 非零元阶全为素数 p 乘法群 (F_p^×, ·):p−1 阶 循环?(第四章证明:是) Fermat · Wilson 住左楼 Fermat · Lagrange · 指标住右楼
同一座城的两条街区:加法街上人人平等(阶全为 p),乘法街上层級分明(阶整除 p−1,且第四章将证存在「生成整条街」的原根)。
画像还有一层远景:F_p 之外有更大的有限域 Fp2, Fpn——那里 Frobenius 映射不再是恒等,而是货真价实的「域对称」。有限域如今是纠错码(QR 码)、椭圆曲线密码的心脏。从《孙子算经》的「物不知数」到手机里的加密芯片,这座「小城」走过了近两千年的路——而我们的旅程才刚到第三站。
综合站

第三章 同余方程与多项式章小结:知识图谱与方法表

本章是全书的「代数枢纽」:把前两章的群与环升格为域,让多项式代数全面回归,再以 Lagrange 定理为核心收割了一系列定理。知识图谱如下:

第三章知识图谱:一域擎四柱 域 F_p ℤ/pℤ · 消去律成立 线性方程 g | b ?解数 = g Lagrange 定理 n 次至多 n 根 CRT 一般形式 探针构造 · 模 M 唯一 完全分裂 Wilson · 幂和归零 Frobenius · Lucas (1+x)p​ ≡ 1+xp​
域是地基,五根柱子分立:线性方程(Bézout 支撑)、Lagrange(因式定理支撑)、CRT(探针支撑);完全分裂与 Frobenius 则是 Lagrange 顶上的两层阁楼。
方法表(配合 3.18 使用):判存在看 gcd;数解看 gcd;联立先对账;多项式先降次;二次靠配方;二项方程用 gcd(d, p−1) 报解数;组合数用 Lucas 逐位。一页在手,本章无忧。
综合站

第三章 同余方程与多项式思想卡:有限世界的基本定理——根不会太多

思想卡 在域上,「次数」是多项式根数的天然天花板。这条看似朴素的事实,是代数世界里最常用的「守恒律」:它让「多项式恒等」可以由「有限个点上的取值」锁定(次数和之内的点),让插值成为可能,也让「完全分裂」成为可望亦可及的顶格事件。

三条延伸,各通向一个更大的世界:

其一(唯一性):次数 ≤ n 的多项式由 n + 1 个点唯一决定——Lagrange 插值公式。这把「多项式」变成了「点值的另一种编码」,密码学里的 Shamir 秘密分享正建于此。

其二(计数):xd ≡ 1 至多 gcd(d, p−1) 个根的精确版告诉我们:有限域上的「单位根群」规模有限、结构规整——这是第四章循环群解剖的入口。

其三(不可能性):次数红线是「不可能证明」的万用模具:想证明某个方程无解?证出根数超线即可(如练 4.1 的 mod 8 四根反例堵死了「域化推广」)。负结果同样有形状。

回望第一章的「素数是整数的原子」、第二章的「CRT 是世界的直积分解」、本章的「根不会太多」——每章都有一张思想卡。它们共同勾勒出数论的气质:用最小的公理(良序、域公理),封顶最大的猜想。下一章,乘法群的原根将把这些散落的定理拧成一股绳。
综合站

第三章 同余方程与多项式挑战一 Lagrange 多项式定理的完整证明

任务 不看 3.8,独立完成四步证明。每步附自查点,闯关式推进。

第一步(带余除法) 证明:域 F 上,f(x) 除以 g(x)(g 首项系数 c ≠ 0)可得 f = gq + r,且 r = 0 或次数低于 g。自查:对 f 的次数归纳;除法每步用 c 的逆元——域在哪里出场?答:c 可逆。

第二步(因式定理) 推出 f(a) = 0 ⟺ (x − a) | f(x)。自查:取 g = x − a,余式 r 是常数且 r = f(a)。为什么 g 首项系数是 1?——所以除法永远合法。

第三步(归纳主体) 设 n 次多项式至多 n − 1 个根(归纳假设),证 n 次至多 n 个。自查:找到根 a 后,任何其他根 b 为什么自动是 q(x) = f(x)/(x − a) 的根?关键等式 0 = f(b) = (b − a)q(b) 中,「b − a ≠ 0 可逆」与「非零之积非零」都是域公理——在 ℤ/8ℤ 里指出这两个环节各自断裂的位置。

第四步(反例校准) 用 x2 − 1 ≡ 0 (mod 8) 的四根 {1, 3, 5, 7} 逐条对照:哪一步在 ℤ/8ℤ 里失效?自查:b = 3 时 (b − 1) = 2 非零但不可逆;2·4 ≡ 0 是两个非零元之积为零。红线只在域内成立。

闯关完成的标准:能在白纸上默写四步、并准确指出每一步「域」的用武之地。定理记住定理的证明还不够,要记住证明里每一个公理的岗位——这是从「会做题」到「懂数学」的分水岭。
综合站

第三章 同余方程与多项式挑战二 Lucas 定理:二项式系数 mod p 的组合证明

目标定理 n = ap + r,k = bp + s(0 ≤ r, s ≤ p − 1),则 C(n, k) ≡ C(a, b)·C(r, s) (mod p)。

第一步(坍缩式升级) 由 (1 + x)p ≡ 1 + xp (mod p),反复使用得 ((1 + x)p)a ≡ (1 + xp)a,故

(1 + x)n = (1 + x)ap+r ≡ (1 + xp)a·(1 + x)r (mod p)。

第二步(比对系数) 右边展开:(1 + xp)a 贡献 xbp 的系数 C(a, b) 乘 (1 + x)r 中 xs 的系数 C(r, s)——因为 xk = xbp + s 只能拆成「p 的倍数部分 + 余数部分」,而 (1+x)r 的次数不足 p,两部分独立。自查:为什么没有其他组合贡献 xk?——若 (1+xp)a 取 x(b+1)p 次幂,则 (1+x)r 需提供负次数,不可能;次数重叠的情形同理排除。

第三步(读出结论) 左边 xk 的系数是 C(n, k),右边是 C(a, b)C(r, s),两边 mod p 相等,Lucas 定理到手。

对账三连:C(10, 3) mod 7 = C(1,0)·C(3,3) = 1(例 9)✓;C(14, 5) mod 7 = C(2,0)·C(0,5) = 0 ✓;C(21, 7) mod 7 = C(3,1)·C(0,0) = 3(练 8.3)✓。

这个证明是「生成函数思想」的最小样本:把计数问题编码成多项式的系数,用代数恒等式(坍缩式)搬运信息,再解码回来。第四章的「指标」把乘法编码成指数加法,是同一思想的群论版。
综合站

第三章 同余方程与多项式实验:LCG 随机数可视化——点阵里的周期之舞

实验设计 把 LCG 的输出对 (x_n, xn+1) 画成平面点阵:满周期的 LCG 应在 16×16 网格上盖出整齐的平行线族——「随机」的外表下藏着笔直的骨骼。本章以 m = 16 为例做手工版:

手工数据 LCG(5, 3, 16) 从 x0 = 3:序列 3, 2, 13, 4, 7, 6, 1, 8, 11, 10, 5, 12, 15, 14, 9, 0, 3(周期 16)。相邻对:(3,2), (2,13), (13,4), (4,7), (7,6), (6,1), (1,8), (8,11), (11,10), (10,5), (5,12), (12,15), (15,14), (14,9), (9,0), (0,3)。将这些点标在 16×16 网格上,再用直线 y = 5x + 3 (mod 16) 串起——每一点都在同一条「模意义下的直线」上!这就是著名的安全教训:连续输出强烈相关,看到几点即可解出 (a, c)(练 11.3 的逆运算)。
LCG(5,3,16) 的相邻对点阵:随机外衣下的平行线族 x_n xn+1​ 16 点共线(模 16 折返) y = 5x + 3 (mod 16) 知道 (3, 11) 与 (11, 7) 两对即可解出 a, c → LCG 不适合密码
横轴纵轴均为模 16 的状态——点阵是折返意义下的「直线」,伪随机的几何真相。把 (x_n, xn+1) 画出来:所有点落在模 16 的一条「折返直线」上。真随机的点阵应是均匀的雾——LCG 的雾里有直线。
升级实验:换 LCG(7, 5, 16)(周期 4)再画一遍——只有四个点在转圈。再换大模 m = 231−1 的知名参数,点阵依然是线族。可预测性的几何形象,莫过于此。
综合站

第三章 同余方程与多项式章测试与评讲

T1(存在与个数) 不解方程,判断下列各有几解:(a) 6x ≡ 4 (mod 10);(b) 5x ≡ 12 (mod 18)。评讲:(a) g = 2 | 4 → 2 解;(b) g = 1 → 1 解。查的是 3.2/3.3 的判据条件反射。

T2(通解公式) 写出 6x ≡ 4 (mod 10) 的全部解。评讲:约成 3x ≡ 2 (5),x0 ≡ 2·2 = 4 (5),通解 x ≡ 4, 9 (10)。错得最多的是漏解或写进模 5。

T3(CRT 对账) x ≡ 1 (4) 且 x ≡ 3 (9),求 x mod 36。评讲:x = 1 + 4t ≡ 3 (9) → 4t ≡ 2 → t ≡ 2·7 = 14 ≡ 5 (9),x = 21。检验:21 mod 4 = 1 ✓,21 mod 9 = 3 ✓。探针法亦可:M1y1 = 9·9−1(4)?M1 = 9,9y ≡ 1 (4) → y ≡ 1,探针 9;M2 = 4,4y ≡ 1 (9) → y ≡ 7,探针 28;x = 1·9 + 3·28 = 93 ≡ 21 (36) ✓。

T4(Lagrange) F_11 中 x4 − 3x2 + 2 有几个根?评讲:因式分解 (x2 − 1)(x2 − 2)。x2 = 1 → x = ±1 = {1, 10};x2 = 2:平方表 mod 11 为 {1, 3, 4, 5, 9},2 不在 → 无根。共 2 根,未顶格。

T5(完全分裂 + Lucas) 求 C(22, 6) mod 11,并说明用了哪条定理。评讲:22 = (2, 0)11,6 = (0, 6)11 → C(2,0)·C(0,6) = 1·0 = 0(Lucas)。机理追问:为什么低位是 0 就整体清零?——(1+x)r 部分(r = 0)提供不出 x6。

T6(结构题) 举出一个「三次方程五根」的同余方程,并解释它不违反任何已证定理。评讲:x3 ≡ x (mod 6)(例 5 的换模快照)有六根,或 x3 ≡ x (mod 6) 的任一变形。不违反:6 非素数,ℤ/6ℤ 不是域,Lagrange 红线不适用——域假设是定理的岗位说明书。

六题对应六章点:判据(T1/T2)、联立(T3)、域上求根(T4)、Lucas(T5)、域假设的边界(T6)。全对者可携 3.18 的方法表进入第四章;有失手者,先回对应小节补一课——方程一站的隧道已打通,前方是乘法群的原根之光。
第四章

原根与指标

谁的幂走遍全群?原根是乘法群的齿轮,指标把乘法变加法,是离散对数的古典名字。循环性定理是本书最深的群论成果;Diffie–Hellman 密钥交换证明:两千年纯数学在四十年前忽然接管世界。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
讲义

第四章 原根与指标4.1 导引:乘法群的骨架——谁的幂走遍全群?

第二章末尾我们认识了乘法群 F_p^× = {1, 2, …, p−1}(模 p 乘法);第三章末尾的幂映射分层图留下了悬念:x ↦ x4 在 F_17 上是「4 层楼」,x ↦ x3 在 F_13 上是「3 层楼」。楼层多寡不一——那么,谁的幂能走遍整座楼?

在 F_13 中:21 = 2, 22 = 4, 23 = 8, 24 = 3, 25 = 6, 26 = 12, 27 = 11, 28 = 9, 29 = 5, 210 = 10, 211 = 7, 212 = 1。

十二个不同的值——2 的幂恰好铺满全部非零元!这样的元素叫原根(primitive root):它是整座乘法群的「一主齿轮」,转一圈把所有齿轮位都带到。本章的两大主角由此登场:证明原根总存在(Gauss 的成名作之一),并利用它建立指标(离散对数)——把乘法翻译成加法的对数表。

2 的幂环游 F_13(模 13 折返) 5 的幂:只走半圈就回头 1 2¹ 2² 2³ 2⁴ 2⁵ 2⁶ 12 个位置 全部走遍 1 5 5² 5³ = 8 → 停 5⁴ 5⁵ 阶 = 4 只走 4 站
左:2 是 F_13 的原根,幂序列走遍十二个非零元;右:5 的幂只造访 {1, 5, 8, 12} 四个位置(53 = 125 = 9·13 + 8)就回到 1。同一座城,不同的环游路线。
路线的长短,数学上叫元素的阶。走遍全群者阶 = p − 1(原根);草草回头者阶更小。本章任务清单:定义阶 → 计算阶 → 证明阶为 p−1 的元素必有 φ(p−1) 个 → 建立指标表 → 解幂方程 → 直到 Diffie–Hellman。
历史一瞥:「原根」由 Euler 命名(primitive root),但把它变成完整理论的是 18 岁的 Gauss——1797 年《算术研究》手稿第七篇。2 在 F_13 走遍全群这件小事,是整个离散对数密码学(今天浏览器 HTTPS 握手仍在用)的种子。
讲义

第四章 原根与指标4.2 元素的阶:定义与基本性质

定义(阶) 群 G 中元素 a,若存在正整数 k 使 ak = e(单位元),则最小的这样的 k 称为 a 的阶,记作 ord(a)。在 F_p^× 中即:最小的 k 使 ak ≡ 1 (mod p)。

阶为什么存在?Fermat 小定理担保 ap−1 ≡ 1,候选集非空,正整数集中取最小——又是良序原理的手笔。阶的三条基本性质:

命题 设 ord(a) = n。① ak ≡ 1 (mod p) ⟺ n | k。② a 的幂 1, a, a2, …, an−1 两两不同。③ ord(ak) = n / gcd(n, k)。

证明 ① 带余除法 k = qn + r(0 ≤ r < n):ak = (an)q·ar ≡ ar。故 ak ≡ 1 ⟺ ar ≡ 1;由 n 的最小性 r = 0,即 n | k。② 若 ai ≡ aj(0 ≤ i < j < n),则 aj−i ≡ 1 且 0 < j − i < n,与最小性矛盾。③ 记 m = ord(ak)。由 (ak)n = (an)k ≡ 1 知 m | n(用 ①)。又 (ak)n/g = ak·n/g = (an)k/g ≡ 1(g = gcd(n, k) 整除 k),故 m ≤ n/g。反过来 akm ≡ 1 给 n | km,而 gcd(m, n) | m | km 且 gcd(m, n) | n,于是 n | gcd(m,n)·(km/gcd) …简明路线:n | km ⟺ (n/g) | (k/g)m,而 gcd(n/g, k/g) = 1,消去律给 (n/g) | m。两端夹住,m = n/g。∎

性质 ③ 的实例:F_13 中 ord(2) = 12,则幂的阶按 gcd 折算 a = 2,阶 12 原根 a⁴ = 2⁴ = 16 ≡ 3 ord = 12/gcd(12,4) = 3 a⁸ = 2⁸ ≡ 9 ord = 12/gcd(12,8) = 3 3³ = 27 ≡ 1 (13) ✓ 9³ = 729 = 56·13 + 1 ≡ 1 ✓ 幂的阶只由「指数与原阶的最大公约数」决定:gcd 越大,环游越短 推论:ak​ 是原根 ⟺ gcd(k, p−1) = 1——这预告了原根的个数(4.9)
原根的高次幂沿 gcd 折算降阶:12 个非零元在「以 2 为尺」的坐标下各就各位,阶的分布精确复制 φ(d) 的分布。
性质 ① 是「判阶神器」:想验证 ord(2) = 12,不必算满 12 个幂——只需检查 p−1 = 12 的真因子:26 = 64 ≡ 12 ≠ 1,24 = 16 ≡ 3 ≠ 1,23 = 8 ≠ 1,22 = 4 ≠ 1,21 ≠ 1。真因子全不落 1 → 阶恰为 12。次数从 11 次压缩到 5 次。
讲义

第四章 原根与指标4.3 阶的计算:穷举、约化与整除判定

把上一页的「判阶神器」整理成完整流程。给定 F_p 中元素 a(p 素数,p ∤ a):

求阶三步 ① 对 n = p − 1 做标准分解 n = q1e1⋯q_re_r。② 对每个素因子 q_i,逐步检验 an/q_i,若 ≠ 1 则阶保留满 q_ie_i 位,否则降幂再试(二分式搜索)。③ 各素因子的「保留位次」相乘,即为 ord(a)。
例 求 ord(5)(模 13)。n = 12 = 22·3。检验 512/2 = 56:52 = 25 ≡ 12, 56 = 123 = 1728 = 132·13 + 12 ≡ 12 ≠ 1 → 阶含满 22 位。检验 512/3 = 54 = (52)2 = 122 = 144 ≡ 1 → 阶不含 3 位(30)。故 ord(5) = 4。复核:54 = 625 = 48·13 + 1 ✓,且 52 ≡ 12 ≠ 1 ✓。

三步法的代价约为 O(log n) 次模幂——比逐个穷举 12 个幂快得多。它还揭示一个隐秘的对称:阶的判定全部发生在「n 的因子」层面上。这为 4.6 的群版 Lagrange(阶必整除 p − 1)做了数值铺垫。

ord(5) mod 13 的判定树:n = 12 = 2²·3 候选阶:12 的因子 二分逼近 问 5⁶ ≡ 1 ? 5⁶ ≡ 12 ≠ 1 → 留 2² 问 5⁴ ≡ 1 ? 5⁴ ≡ 1 → 舍 3¹ ord(5) = 2² · 3⁰ = 4
每个素因子一次「留或舍」的判定,总代价 O(log n) 次模幂。判定树的两条枝合起来,恰是「阶整除 12」的完整巡检。
注意一个常见的反例预警:mod 合数时这套流程照样能算阶(阶的定义不挑群),但「阶为 n 的原根存在」就不一定了——模 8 时每个奇数的阶至多 2,永远到不了 4。什么时候原根存在?4.7–4.8 专程回答。
讲义

第四章 原根与指标4.4 循环群与生成元:群论速成(二)

定义(循环群) 若群 G 中存在元素 g 使每个元素都能写成 gk(k = 0, 1, …, |G| − 1),则称 G 为循环群,g 为生成元。记 G = ⟨g⟩。

F_13^× 是循环群:⟨2⟩,因为 2 的幂铺满十二个非零元。循环群是结构最透明的群——整个群由一个元素复制而来,所有的元素都排成一条确定的环游路线。群论里证明「某群循环」是高奖赏动作:一旦成立,计数、子群、方程全都有现成答案。

命题(循环群的记数) g 为 n 阶循环群 G = ⟨g⟩ 的生成元。则 ord(gk) = n/gcd(n, k),且 gk 是生成元 ⟺ gcd(k, n) = 1。故 n 阶循环群恰有 φ(n) 个生成元。∎(由 4.2 命题③直接读出:gcd(k, n) = 1 ⟺ 阶 = n。)

举例:F_13^× = ⟨2⟩ 的生成元是 2k(gcd(k, 12) = 1):k = 1, 5, 7, 11 → 21 = 2, 25 = 6, 27 = 11, 211 = 7。原根 {2, 6, 7, 11},恰 φ(12) = 4 个——数字完全咬合。

F_13^× = ⟨2⟩ 的「以 2 为尺」坐标:k 是关键 k=0 k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8 k=9 k=10 k=11 2 6 11 7 金色 = 与 12 互素的指数位置(k = 1, 5, 7, 11)——恰 φ(12) = 4 个生成元
把元素按「2 的指数」排成一条 12 格的尺:生成元恰恰站在与 12 互素的刻度上。一条尺看尽原根分布。
「以 g 为尺」是本章的第一思想武器:循环群里,每个元素都有唯一坐标 k(= 指标,4.10 正式命名)。乘法变成坐标加法,求阶变成坐标的 gcd,解幂方程变成解线性同余——整个乘法世界被一条数轴接管。
讲义

第四章 原根与指标4.5 循环群的子群:每阶恰有一个的独特风景

群论一般理论中,子群可以多到数不清;循环群却出奇地节制:

定理(子群唯一性) G = ⟨g⟩ 为 n 阶循环群,d 整除 n。则 G 恰有一个 d 阶子群:
H_d = ⟨gn/d⟩ = {1, gn/d, g2n/d, …, g(d−1)n/d},

且 H_d 的元素恰是 G 中阶整除 d 的那些元素。∎

证明 H_d 的元素 gjn/d 的 (dn/d = n) 次幂为 1,故 H_d 是群且 |H_d| = d(互异,因 g 的幂在 n 步内互异)。反着看,若 H 是任一 d 阶子群,任取其非单位元 gk,则 (gk)d = 1 → n | kd → (n/d) | k(消去),即 gk ∈ H_d,故 H ⊆ H_d,而 |H| = |H_d| → H = H_d。∎

以 F_13^×(g = 2, n = 12)为例:d = 1, 2, 3, 4, 6, 12 各有一个子群,成员数正比于阶——其中 d = 6 的子群 ⟨22⟩ = {1, 3, 4, 9, 10, 12} 恰是第二章的二次剩余集!这条暗线将在第五章开花。

F_13^× 的子群塔:d | 12 每层恰一个 全群 ⟨2⟩:12 元 6 阶:⟨4⟩ = QR 集 4 阶:⟨5⟩ 3 阶:⟨3⟩ = {1,3,9} 2 阶:{1, 12} 1 阶:{1} d = 12, 6, 4, 3, 2, 1 六层塔每层一间 无分店、无重复
循环群的子群呈「每阶恰一」的塔形结构:4 阶子群 ⟨5⟩ = {1, 5, 8, 12},6 阶子群 ⟨4⟩ = {1, 3, 4, 9, 10, 12} 恰为二次剩余集。塔的层级就是 n 的因子表。
对比记忆:克莱因四元群(4 阶非循环)有三个 2 阶子群;4 阶循环群只有一个。子群的多寡是「循环与否」的指纹。唯一性证明只用了两件兵器:消去律与元素阶的定义——循环的透明性,由此可见。
讲义

第四章 原根与指标4.6 群版 Lagrange 定理:Fermat 小定理的代数再证

定理(群版 Lagrange) 有限群 G 的子群 H 的阶整除 G 的阶:|H| 是 |G| 的因子。进而,任意元素 a 的阶整除 |G|,且 a|G| = e。

证明(陪集分拆) 对 g ∈ G,定义陪集 gH = {gh : h ∈ H}。① 每个陪集与 H 等势(乘 g 是双射)。② 两个陪集要么相等要么不交:g1H ∩ g2H ≠ ∅ 时,gh1 = g2h2 → g2 = g1(h1h2−1) ∈ g1H → g2H ⊆ g1H,对称得相等。③ 每个元素属于某个陪集(g ∈ gH,因 e ∈ H)。于是 G 被切成若干等大的陪集块:|G| = (块数)·|H|。②中「陪集数 · |H|」的块数记 [G : H],得 |G| = [G : H]·|H|。取 H = ⟨a⟩:|⟨a⟩| = ord(a) 整除 |G|,且 a|G| = (aord(a))|G|/ord(a) = e。∎

Fermat 小定理的三代证明就此同框:第二章的「项链翻转」(组合),Wilson 舞会配对(双射),本章的「陪集分拆」(结构)。第三个最抽象也最强大——它对任何有限群生效:Euler 定理 aφ(n) ≡ 1(mod n,gcd(a,n)=1)不过是把群换成 (ℤ/n)× 的免费推论。

陪集分拆:把 12 个元素切成等大块(G = F_13^×,H = ⟨5⟩ = {1,5,8,12}) H = {1, 5, 8, 12} 单位元所在块 2H = {2, 10, 3, 11} 乘 2 的镜像块 4H = {4, 7, 6, 9} 乘 4 的镜像块 12 = 3 × 4:三块等大,无缝不重 —— |G| = [G : H]·|H| 于是每个元素的阶整除 12:这正是 Fermat a¹² ≡ 1 (mod 13) 的代数根源
三块等大的「瓷砖」铺满全群:陪集论证把「整除」变成看得见的几何铺贴。组合、双射、结构——三代证明在此合流。
陪集分拆是群论的「第一定理」级武器。它的精神与第一章的带余除法一脉相承:用等大的块去铺整体,铺满即得整除关系。Fermat 小定理在三个章节里各证一次,每一次都用不同的镜头——这正是 TheBook 式证明观的样本:真理是立体的,多一个视角就多一分理解。
讲义

第四章 原根与指标4.7 原根的存在性(一):素数模的构造性证明

本章最高峰。p 素数时,F_p^× 中必然存在阶为 p − 1 的元素。证明是一段漂亮的「计数拼图」:

第一步(定义计数函数) 对 d | p − 1,记 ψ(d) = F_p^× 中阶恰为 d 的元素个数。显然 Σd | p−1 ψ(d) = p − 1(每个元素有唯一的阶)。

第二步(上界 ψ(d) ≤ φ(d)) 阶为 d 的元素都满足 xd ≡ 1。分两情形:若阶 d 的元素一个也没有,ψ(d) = 0 ≤ φ(d),完成。若有一个,设为 a:则 1, a, …, ad−1 是 xd ≡ 1 的 d 个互不相同的根(4.2 性质②),而第三章 Lagrange 说 xd ≡ 1 至多 d 个根——所以它们是全部根,任何阶 d 的元素必须落在这个集合里。集合中阶恰为 d 的是哪些?ak 的阶 = d/gcd(d, k)(4.2 性质③),恰为 d ⟺ gcd(k, d) = 1,共 φ(d) 个。故 ψ(d) ≤ φ(d)。

第三步(欧拉 φ 恒等式) Σd | n φ(d) = n。证明:把分数 1/n, 2/n, …, n/n 按约分后的分母分类,分母为 d 的恰有 φ(d) 个,总数为 n。∎

第四步(合拢) p − 1 = Σ ψ(d) = Σ φ(d) 且逐项 ψ(d) ≤ φ(d)——总和相等的逐项不等式强制处处相等:ψ(d) = φ(d) 对一切 d | p−1。特别地 ψ(p−1) = φ(p−1) ≥ 1:阶为 p − 1 的元素存在,即原根存在!∎

证明的骨架是「上界 + 总账 = 处处顶格」:每个格子的入住数不超过容量,总人数又恰好等于总容量,那么每格必满员。第三章解数统计定理(xd ≡ 1 恰 gcd(d, p−1) 个根)在这第二步中承担了「封闭根集」的关键角色——第三章的储蓄在此连本带利兑现。
这个证明是间接的存在性证明:它没有指出谁是原根,只证明「名额非零」。Gauss《算术研究》第 55 目给的是这个计数版;实践中找原根用试算法(例 6):依次检验 2, 3, 5, …,用 4.3 的判定树,平均几次就命中——已知最小的原根都很小(p = 13 时是 2)。
讲义

第四章 原根与指标4.8 原根的存在性(二):全定理与边界

定理(Gauss:原根存在定理) 模 n 有原根 ⟺ n ∈ {1, 2, 4, pk, 2pk},其中 p 为奇素数,k ≥ 1。

也就是说:除了 1, 2, 4 与「奇素数幂 ×1 或 ×2」这些形状,其余的模都没有原根。边界的两侧行为迥异:

模 n有原根?乘法群 (ℤ/n)× 的样貌
7(素数)✓(3)6 阶循环群
9 = 32✓(2)6 阶循环群
10 = 2·5✓(3)4 阶循环群
8✗{1,3,5,7}:四个元素阶全为 2(每个奇数平方 ≡ 1 mod 8)
12✗{1,5,7,11}:阶全为 2
15✗{1,2,4,7,8,11,13,14}:最大阶 4 < 8

失败的原因各有面目:模 2k(k ≥ 3)的世界里,「±1 之外还有隐形的平方根」让阶永远上不去;模 15 则因 CRT 分解成两个互素世界的直积,两个循环群的公共节拍凑不满一整圈(群论语言:直积的元素阶是 lcm,15 时 lcm(2, 4) = 4 < 8)。定理的完整证明在本章挑战范围之外(涉及对 2k 的细致分析),但陈述与检验是本章的必修。

原根版图:绿色有原根,红色无原根 n = 2 ✓(1) n = 4 ✓(3) n = 7 ✓(3) n = 9 ✓(2) n = 10 ✓(3) n = 8 ✗ 阶全 2 n = 12 ✗ 阶全 2 n = 15 ✗ 最大阶 4 n = 16 ✗ 阶全 ≤4 括号内 = 最小原根 p=7,9,10 均来自 2pk​ 族
绿色区域(2, 4, 奇素数幂,其二倍)乘法群循环;红色区域注定「转不满一圈」。这张版图是 Gauss 原根定理的全景。
实用结论:密码学使用的模几乎都取素数 p 或 2pk 形状——正因为只有这些模的世界里存在原根,离散对数才有全局坐标。例 1 将实战验证「10 = 2·5 有原根 3」。
讲义

第四章 原根与指标4.9 原根的个数:φ(p−1) 的礼物

4.7 的计数证明顺手送出一份大礼:ψ(d) = φ(d) 对一切 d | p−1 成立。取 d = p − 1:

推论(原根个数) 素数 p 的模 p 原根恰有 φ(p − 1) 个。∎

p = 13:φ(12) = 4 → 原根 4 个 {2, 6, 7, 11}(例 7 逐一验证)。p = 7:φ(6) = 2 → {3, 5}(例 3)。p = 11:φ(10) = 4 → {2, 6, 7, 8}。而且 4.7 的等式 ψ(d) = φ(d) 给出全表:

阶 d1234612
φ(d)112224
F_13 实测{1}{12}{3, 9}{5, 8}{4, 10}{2, 6, 7, 11}

三行完美咬合:每个阶的「理论名额」φ(d) 与「实测名单」分毫不差。一张表同时验证了 4.7 的计数定理、4.5 的子群唯一性(阶 d 的元素凑成唯一的 d 阶子群)与第三章的解数统计——三个定理在同一条表上握手。

F_13 的「阶的户口册」:理论名额 vs 实测名单 阶 1 1 个 阶 2 1 个 阶 3 2 个 阶 4 2 个 阶 6 2 个 阶 12(原根):4 个 {2, 6, 7, 11} = φ(12) 名额满员 总户口 1+1+2+2+2+4 = 12 = p − 1:一格不多,一格不少
「名额 = φ(d)、名单 = 实测」的总账合拢,正是原根存在性证明的算术实感。
φ(p−1) 可以很大:p = 101 时 φ(100) = 40——一百个元素里四十个原根,随手一试就中。这也解释了为什么「找原根」在实践中毫不费力:四成上下的命中率(对常见素数)。
讲义

第四章 原根与指标4.10 指标:离散对数的古典名字

原根一到位,整套「以 g 为尺」的坐标系统就可以挂牌营业。设 g 是模 p 的原根,则每个与 p 互素的 a 都有唯一写法 a ≡ gk (mod p)(1 ≤ k ≤ p − 1):

定义(指标) 这个唯一的 k 称为 a 模 p(以 g 为底)的指标,记作 k = ind_g(a)。

指标就是离散对数:普通对数 log2 8 = 3 解的是「2 的几次方是 8」,指标 ind(8) 解的是「g 的几次方 ≡ 8 (mod p)」。区别只在幂运算发生在模 p 的折返世界里。Gauss 在《算术研究》中系统地使用指标表(Index-Tafel)做计算——那是 1801 年的「对数表」在有限世界的孪生兄弟。

例 p = 7,g = 3:30 = 1, 31 = 3, 32 = 2, 33 = 6, 34 = 4, 35 = 5。于是 ind(1) = 0, ind(3) = 1, ind(2) = 2, ind(6) = 3, ind(4) = 4, ind(5) = 5。例 8 将给出完整表格及其用法。
普通对数 vs 离散对数:同一个问题,两个世界 实数世界:log₂ 8 = 3 2³ = 8,连续刻度上的幂 单调、可微、表查即得 F_23 世界:ind₅(8) = 6 5⁶ ≡ 8 (mod 23),折返钟面上的幂 折返打乱次序:没有单调性可依 折返把「查表」变成「大海捞针」——这正是密码学的立足点(4.16)
对数在实数世界是「单调反查」,在模 p 世界是「折返反查」:gk 的值序与 k 的序完全脱钩,反查骤然变难。
约定:指标只在「与 p 互素」的元素上有定义;底数 g 固定为某个原根(换原根 = 换坐标系,坐标全体乘一个可逆常数)。本讲义中 p = 7 取 g = 3,p = 13 取 g = 2。
讲义

第四章 原根与指标4.11 指标算术:把乘法变加法

指标的威力来自它把乘法群「同构搬运」到加法世界。设 g 为原根,a ≡ gu, b ≡ gv (mod p),则

ab ≡ gu+v ⟹ ind(ab) ≡ ind(a) + ind(b) (mod p − 1)。

注意模数换了:指标运算在模 p − 1 下进行(指数世界以 p − 1 为周期——Fermat 的又一面孔)。同理 ind(ak) ≡ k·ind(a) (mod p − 1)。乘法、幂、求逆,全部化作模 p−1 的加法、数乘与取负:

乘法世界(mod p)指标世界(mod p−1)备注
a · bind a + ind b加法
a / bind a − ind b减法
akk · ind a数乘
ak = b 是否有解k·x ≡ ind b (p−1) 是否有解线性方程!

最后一行是全场高潮:第三章苦心经营的线性同余方程理论(判据 g | b、解数 = g)在指数世界里精确接管了幂方程——第三章与第四章在此咬合成一台完整的机器。以 p = 13, g = 2 对账三笔:

对账(p = 13, g = 2) 坐标:ind 6 = 5(25 = 32 ≡ 6 ✓),ind 11 = 7(27 = 128 = 9·13 + 11 ≡ 11 ✓),ind 1 = 0,ind 9 = 8(28 = 256 = 19·13 + 9 ✓)。第一笔(乘→加):6·11 = 66 ≡ 1,而 ind 6 + ind 11 = 5 + 7 = 12 ≡ 0 = ind(1) ✓。第二笔(逆→负):6 的逆元是 11,而 −5 ≡ 7 (mod 12) = ind 11 ✓。第三笔(幂→数乘):64 = (25)4 = 220 = 28 ≡ 9,而 4·5 = 20 ≡ 8 = ind 9 ✓。三笔咬合,翻译机验收合格。
指标 = 一台「同构翻译机」(p = 13, g = 2) 乘法账(mod 13) 6 · 11 = 66 ≡ 1 6⁻¹ = 11 6⁴ ≡ 9 指标账(mod 12) 5 + 7 = 12 ≡ 0 = ind(1) ✓ −5 ≡ 7 = ind(11) ✓ 4 · 5 = 20 ≡ 8 = ind(9) ✓ 乘→加、逆→负、幂→数乘:每一笔账都能在另一侧找到原票
翻译机的三笔样账。记号密度高,初学务必逐项核对底账:出错的全是「查表」这一步,运算律本身无懈可击。
「除法即减指数」立等可验:想求 6−1?ind 6−1 = −5 ≡ 7 (mod 12),查回 27 ≡ 11——与直接试乘(6·11 = 66 ≡ 1)殊途同归。Gauss 把指标表印在《算术研究》附录,为的就是让这类账目当场可查。
讲义

第四章 原根与指标4.12 指标表:Gauss 的求根工具箱

指标算术的用途,是把「解幂方程」变成「解线性方程」。工具箱的中央就是指标表。p = 7, g = 3 的完整表(例 8 将详细用法):

a123456
ind3(a) (mod 6)021453

使用示范:解 3x ≡ 4 (mod 7)。查表 ind(4) = 4,方程即 3x ≡ 4 (mod 6)?——不,底数若恰是原根 g 本身,x 就是 ind(4) = 4。验:34 = 81 = 11·7 + 4 ✓。再示范「两数相乘的指标」:ind(2·5) = ind(10) = ind(3) = 1(10 ≡ 3),而 ind 2 + ind 5 = 2 + 5 = 7 ≡ 1 (mod 6) ✓。

指标表的构造是一次原根的幂巡游:算 31, 32, …, 36 逐个登记。表中值序 {0, 2, 1, 4, 5, 3} 杂乱无章——这份杂乱正是安全性的源泉(4.16)与「查账要细心」的原因(4.11)。

指标表的读法:上行查值,下行读幂(p = 7, g = 3) a(值) 1 2 3 4 5 6 ind(a) 0 2 1 4 5 3 下行值序 {0, 2, 1, 4, 5, 3} 刻意「乱序」:3ᵏ 的折返值不随 k 增长——表的乱是群的本性
Gauss《算术研究》附录的 Index-Tafel 缩微版:有了它,模 7 的乘除开方都降格为 0–5 的加减乘除。
历史注脚:Gauss 为 p ≤ 100 的所有素数编制了完整指标表。手工时代这是「表格即算法」的巅峰;今天这些表由机器瞬间生成,但表的数学内容一分未变——正站在 Gauss 的表前解他的方程。
讲义

第四章 原根与指标4.13 二项同余方程:xn≡a(p) 的指标判据

现在是收割时刻。解二项同余方程 xn ≡ a (mod p)(p ∤ a):两边取指标,

n·ind(x) ≡ ind(a) (mod p − 1)。

这是关于未知指标 y = ind(x) 的线性同余方程!第三章定理整装上阵:记 G = gcd(n, p − 1),方程有解 ⟺ G | ind(a);有解时恰 G 个,且给出 x 的 G 个互异解。翻译回乘法世界:

定理(二项方程判据) p 素数,p ∤ a,n ≥ 1,G = gcd(n, p − 1)。则 xn ≡ a (mod p) 有解 ⟺ a(p−1)/G ≡ 1 (mod p);有解时恰 G 个解。∎

注(判据的来源) a(p−1)/G = gind(a)·(p−1)/G ≡ 1 ⟺ (p − 1) | ind(a)·(p − 1)/G ⟺ G | ind(a)——线性方程 n·y ≡ ind(a) (mod p−1) 的可解条件(第三章 3.2)原样投影。解数同源于线性方程理论。

这一举解释了第三章「对账表」的全部谜团:x3 ≡ 2 (13) 无解,因为 G = gcd(3, 12) = 3 而 ind(2) = 1,3 ∤ 1;x3 ≡ 8 (13) 恰三解,因为 8 = 23,ind(8) = 3·ind(2) = 3,3 | 3。当时只能「枚举验证」的现象,如今一行指标账算尽。

幂方程的指标流水线(x³ ≡ 8 (mod 13)) 乘法世界 x³ ≡ 8 (13) 取指标 3y ≡ 3 (mod 12) ind(8) = 3·ind(2) = 3 线性定理 g = 3 | 3 ✓ 恰 3 个指标解 y ≡ 1, 5, 9 (12) → x = 2¹, 2⁵, 2⁹ = {2, 6, 7}? 验:2⁹ = 512 = 39·13 + 5 ≠ 8?
流水线末端亮起警示灯:y ≡ 1 给 x = 2 ✓(23 = 8),y ≡ 5 给 25 = 32 ≡ 6,63 = 216 = 16·13 + 8 ✓;y ≡ 9 给 29 = 512 = 39·13 + 5 ≡ 5,53 = 125 = 9·13 + 8 ✓。解为 {2, 6, 5}——指标给出的三个候选全部当场复核通过。
上图图注里的复核习惯:指标算出的候选解,必须回到乘法世界逐个验明正身。翻译机再精密,最后一公里的人工验收不可省——这也是第三章例 1「检验是数论的生命线」的第四章回声。
讲义

第四章 原根与指标4.14 高次同余方程:n 次幂的可解性全景

把 4.13 的判据展开成全景。p 素数,考虑「n 次幂映射」σ_n : x ↦ xn 在 F_p^× 上的行为(以原根为坐标,它就是 y ↦ n·y 的乘法映射,模 p − 1):

三个全景事实 ① 像 = G 次幂子群:σ_n 的像点恰是 ⟨gG⟩(G = gcd(n, p−1)),共 (p−1)/G 个像点;② 重数:每个像点上方恰有 G 层(G 个原像);③ 判据:a 是像点 ⟺ a(p−1)/G ≡ 1。∎(全部由线性方程理论 + 4.2 性质③读出。)

特殊情形一枚:n 整除 p − 1 时,G = n,像点 (p−1)/n 个、每个 n 层——第三章 3.16 那张 p = 13 的柱状图(金色顶格、暗色一根)由此获得完整解释:d | 12 时恰 d 根,d ∤ 12 时「像点」只有 1 个(x = 1)。再一枚:n = 2 时 G = 2,像点 = 平方像点 = 二次剩余,恰 (p−1)/2 个——第五章的主角提前在指标世界领到了身份证。

三次幂映射 x ↦ x³ 在 F_13(G = gcd(3,12) = 3):12 层压成 4 层 y=0 层 2⁰=1 ← ind 0 y=3 层 2³=8 ← ind 3 y=6 层 2⁶=12 ← ind 6 y=9 层 2⁹=5 ← ind 9 四个像点: {1, 8, 12, 5} 每个像点 上方 3 层 12 = 4 × 3 像点 = 指标是 3 的倍数者:{ind 0, 3, 6, 9} —— 线性世界的等差,就是乘法世界的幂塔
「三次幂像」的完整户口:像点 {1, 8, 12, 5}(注意 12 = −1,8 与 5 互为 ± 关系的余数化身)。第三章的解数、本章的指标、第五章的剩余——同一座建筑的三张图纸。
指标判据的终极简报:拿到 xn ≡ a (mod p),三步走——算 G = gcd(n, p−1);验 a(p−1)/G ≡ 1;过则取指标解线性方程、回乘法世界验收。从前「高次方程」望而生畏,如今是一台三步流水线。
讲义

第四章 原根与指标4.15 有限域的乘法结构:F_p 的完整解剖

三章半的努力,可以给 F_p 出具一份「完整体检报告」了:

项目结论出处
加法群 (F_p, +)p 阶循环群,结构最简第二章
乘法群 (F_p^×, ·)p−1 阶循环群(Gauss)本章 4.7
生成元个数φ(p−1) 个原根本章 4.9
子群结构每阶恰一个,塔形嵌套本章 4.5
元素阶分布阶 d 者恰 φ(d) 个本章 4.7
多项式根数n 次至多 n 根(域)第三章
幂映射 σ_nG = gcd(n, p−1) 层塔本章 4.14

这张表的价值在于自足:F_p 的全部乘法行为,都能从「一个原根 + 模 p−1 的算术」推演。第五章将在这个自足体系上再叠一块砖——「平方」这一特殊幂映射(σ2)的像点分布规律,最终凝成二次互反律。届时可以发现:互反律的 Gauss 计数证明,正是本章陪集分拆与第三章根计数的再度合体。

体检报告:一座自足的乘法宇宙 F_p^× ≅ 加法群 ℤ/(p−1)(via 原根坐标) 循环性 = 「乘法宇宙有一条主轴」:一切结构沿主轴摊开 已解剖完毕(本章) 阶 · 子群 · 幂塔 · 指标 最后一站(第五章) σ₂ 的像点 = 二次剩余 原根是钥匙,指标是地图,互反律是这座宇宙最深处的对称律
循环性是有限域乘法结构的「万有引力」:抓到一个原根,全群的几何、计数、方程逐一归位。
一个值得停顿的对照:ℚ 的乘法结构(素数分解)与 F_p 的乘法结构(循环群)长得毫无相似之处,却都由「原子 + 计数」两件套统治——FTA 管前者,原根定理管后者。数学结构可以天差地别,「分解到不可再分,再数清楚」的方法论却一以贯之。
讲义

第四章 原根与指标4.16 离散对数问题:乘起来容易,拆开很难

指标表的最后一行其实写着警告。构造指标表需要逐个计算 g1, g2, g3, …——正向幂运算便宜(快速幂,第二章,O(log k) 步)。但反方向「给 a 求 k」——离散对数问题(DLP)——至今没有已知的高效算法。

离散对数问题(DLP) 给定素数 p、原根 g 与元素 a,求 k 使 gk ≡ a (mod p)。目前最好算法(数域筛类)在 p 有几百位十进制数字时仍需天文数字般的运算;而正向计算 gk 只需几十次乘法。

难在哪里?实数世界 log 有单调性可用(夹逼、牛顿迭代),模 p 世界 gk 的值序彻底打乱(4.10 图)——折返毁灭了所有连续性工具。暴力枚举要 O(p) 步;聪明些的「大步小步」算法(BSGS,例 11)要 O(√p) 步与 √p 存储——√(2128) 级别的代价,工程上等于不可行。这条「单向性」(易正向、难逆向)正是公钥密码学的引擎。

单向性天平:幂 vs 离散对数 正向:gk​ (mod p) 快速幂:约 log₂ p 次乘法 p 有 300 位数字时:约 1000 步 ✓ 逆向:ind_g(a) 最好算法:亚指数级代价 同样模数:宇宙尺度的年 ✗ 「做乘容易拆乘难」:单向天平的两端相差十几个数量级——密码学要的就是这个落差
DLP 的难,是「结构被封印」的难:原根坐标 k 明明存在(4.10 保证了唯一性),却无法高效读出。存在与可及之间,隔着折返的迷雾。
哲学片刻:Gauss 时代指标表难造因为计算慢;今天表能瞬间造出(p 不大时),但大 p 的 DLP 依然坚挺——难的从来不是「算」,而是算法随规模增长的速度。数论的「计算复杂性」一面,从这里正式登台。
讲义

第四章 原根与指标4.17 现代接口:Diffie–Hellman 密钥交换与 ElGamal〔密码〕

1976 年,Diffie 与 Hellman 发表《密码学的新方向》:两个从未见过面的人,可以在窃听者眼皮底下商定共同密钥。其数论心脏正是本章的幂映射:

Diffie–Hellman 协议 公开:大素数 p 与原根 g。① Alice 取秘密 a,广播 A = ga (mod p);② Bob 取秘密 b,广播 B = gb (mod p);③ Alice 算 K = Ba = gab,Bob 算 K = Ab = gab——两人殊途同归。④ 窃听者手握 g, p, A, B,想求 K 需解 DLP(或其等价的 DH 问题)——目前不可行。
迷你演示(例 12 详述) p = 23, g = 5(验证 5 确为 mod 23 的原根)。Alice 秘密 a = 6 → A = 56 = 15625 ≡ 8 (23);Bob 秘密 b = 15 → B = 515 ≡ 19 (23)。Alice:K = 196 ≡ 2;Bob:K = 815 ≡ 2。共享密钥 K = 2 ✓。窃听者看到 8 与 19,想反推 6 或 15,需在「折返迷雾」里大海捞针——真实世界 p 取 2048 位二进制,捞针半径是宇宙级。
Diffie–Hellman 迷你演示(p = 23, g = 5) Alice 密 a = 6 Bob 密 b = 15 公开 p=23, g=5 A = 8 B = 19 K = 19⁶ = 8¹⁵ = 2 共享密钥:窃听者求之不得 窃听者视角:只有 A=8, B=19 —— 反推 a 或 b 即解 DLP
DH 的魔术:秘密从未上线,密钥却在两端同时成立。中间人手握 8 与 19,面前是离散对数的迷雾——p = 23 时迷雾单薄(秒破),p 取 2048 位时迷雾即铜墙铁壁。
ElGamal(1985)把 DH 顺手升级为加密系统:Bob 公布 B = gb;Alice 发消息 m 时选随机 r,送出 (gr, m·Br);Bob 用 (gr)b 恢复 m。骨架仍是「指数相加 = 幂相乘」。本章的每一条定理——原根存在、指标唯一、DLP 之难——都在这套协议里领到了工资。
讲义

第四章 原根与指标4.18 本章总结与方法表

本章从「谁的幂走遍全群」的疑问出发,抵达了「乘法宇宙有一条主轴」的定理,并把轴上的坐标(指标)变成了工具箱。总结如下:

问题答案 / 方法背后的定理
ak ≡ 1 的最小 k?ord(a),判定只需查 p−1 的素因子阶的性质(4.2–4.3)
谁走遍全群?原根存在(p 素数),恰 φ(p−1) 个Gauss 存在定理(4.7–4.9)
哪些模有原根?n ∈ {1, 2, 4, pk, 2pk}Gauss 全定理(4.8)
子群有几个?每阶 d | n 恰一个 ⟨gn/d⟩循环群子群唯一性(4.5)
为什么阶整除群阶?陪集等大切分群版 Lagrange(4.6)
乘法怎么变加法?ind(ab) ≡ ind a + ind b (p−1)指标同构(4.10–4.11)
xn ≡ a (p) 有解吗?a(p−1)/G ≡ 1,G = gcd(n, p−1),恰 G 解指标判据(4.13–4.14)
反向求 k 难吗?难(DLP)——密码学的墙单向性(4.16–4.17)
第四章在五站旅程中的位置:拿到主轴的钥匙 整除 第一章 同余 第二章 方程 第三章 原根 · 指标 乘法群循环 带走三件工具:判定树 · 指标翻译机 · 幂方程判据
第四站把乘法群炼成一条轴:终点站的二次剩余,不过是轴上「偶数刻度 vs 奇数刻度」的分野——预知详情,且看终章。
回应 4.1 的悬念:现在我们知道 F_p^× 里「原根四成上下、阶的分布 φ(d) 定员」。终章的问题更尖锐:σ2 的像点(二次剩余)与非像点(非剩余)如何分布?两个不同素数的「平方特征」如何互相打量?——Gauss 称之为「黄金定理」:二次互反律,全书的珠穆朗玛。
例题

第四章 原根与指标例1 求阶:3 在 (ℤ/10ℤ)× 中的阶

题 求 3 在乘法群 (ℤ/10ℤ)× 中的阶,并判断它是否为原根。

解 (ℤ/10ℤ)× = {1, 3, 7, 9}(与 10 互素的剩余类),群阶 = φ(10) = 4,故候选阶是 4 的因子:1, 2, 4。逐级检验:

31 = 3 ≠ 1; 32 = 9 ≠ 1; 34 = (32)2 = 81 = 8·10 + 1 ≡ 1 ✓

阶为 4——恰好等于全群的阶,所以 3 是模 10 的原根!这与 Gauss 存在定理吻合:10 = 2·5 属于「2pk」族,必有原根。它的幂走遍全群:30=1, 31=3, 32=9, 33=27≡7——四个成员一个不缺。

本例的流水线:定群阶 φ(n) → 取其因子逐级试乘 → 命中即停。合数模不必心虚——只要 n 落在 Gauss 版图的绿色区(2, 4, pk, 2pk),原根就在群中等候。顺带一提:9 = 32 也是原根(它是 33),{3, 9} = φ(4) = 2 个,名额表再次对账成功。
例题

第四章 原根与指标例2 阶的性质对账:a 的阶与幂的阶

题 已知 ord(2) = 12 (mod 13),用公式 ord(ak) = 12/gcd(12, k) 预报 24, 26, 28 的阶,并逐个验证。

预报 ord(24) = 12/gcd(12,4) = 12/4 = 3;ord(26) = 12/gcd(12,6) = 2;ord(28) = 12/gcd(12,8) = 3。

验证 24 = 16 ≡ 3,而 33 = 27 ≡ 1 (13) 且 31, 32 ≠ 1 → 阶 3 ✓。26 = 64 ≡ 12 ≡ −1,平方即 1 而自身不是 1 → 阶 2 ✓。28 = 256 = 19·13 + 9 ≡ 9,93 = 729 = 56·13 + 1 ≡ 1,91 ≠ 1 → 阶 3 ✓。三发三中。

k12346812
gcd(12,k)12346412
ord(2k) 预报12643231
这张表是 4.9「户口册」的生成器:k 与 2k 一一对应,ord(2k) = 12/gcd(12,k) 把阶的分布直接写成 gcd 的算术——阶 12 者 4 个(k 与 12 互素)、阶 6 者两个、阶 4 者两个……φ(d) 名额表由此机械地产出。一条公式,整本户口。
例题

第四章 原根与指标例3 循环性验证:(ℤ/7ℤ)× 的生成元全集

题 求 (ℤ/7ℤ)× 的全部生成元(原根)。

解 群阶 6,候选阶为 1, 2, 3, 6。逐个求阶:

a123456
幂迹12,4,13,2,6,4,5,14,2,15,4,6,2,3,16,1
阶136362

生成元(阶 6 者)为 3 与 5——恰 φ(6) = 2 个 ✓。注意 2 与 4 的幂迹是彼此的「前半段」:⟨2⟩ = {1, 2, 4} 是 3 阶子群,4 = 22 与 2 同群;而 3、5 的迹各自铺满全部六格。名字对账:3 与 5 = 35 ≡ 5 (7),5 的指标是 5——两生成元的指标 1 与 5 恰是 6 的既约剩余 ✓。

小模验证是理解循环性的最短路径:六个元素、两条完整环游、一条 3 阶短环游走两遍(2 与 4 同游)。看到 2 与 4 共享一条环游,就看到了「子群 = 生成元幂的封闭子集」的具象。
例题

第四章 原根与指标例4 子群清单:(ℤ/13ℤ)× 的全部子群

题 列出 (ℤ/13ℤ)× = ⟨2⟩ 的全部子群,验证「每阶恰一个」。

解 n = 12 的因子:1, 2, 3, 4, 6, 12。按公式 H_d = ⟨212/d⟩:

阶 d生成元成员备注
122全群 {1,…,12}—
622 = 4{1, 3, 4, 9, 10, 12}= 二次剩余集!
423 = 8{1, 5, 8, 12}⟨5⟩ 同一群
324 = 16 ≡ 3{1, 3, 9}—
226 = 64 ≡ 12{1, 12}−1 所在
11{1}平凡群

六个子群、六个阶、一一对应——「每阶恰一」的塔形结构完整落地。链式嵌套可见:{1} ⊂ {1,12} ⊂ {1,3,9} ⊂ {1,3,4,9,10,12} ⊂ 全群,以及 {1,12} ⊂ {1,5,8,12} ⊂ 全群。

6 阶子群 = 二次剩余集不是巧合:x 是 QR ⟺ x = y2 = 22·ind(y),指标是偶数 ⟺ 指标落在 ⟨4⟩ 的坐标 {0, 2, 4, 6, 8, 10} 里。QR 集的原根坐标 = 偶数刻度——把这句话记住,第五章的 Euler 判据只需一步就能走通。
例题

第四章 原根与指标例5 群版 Lagrange:Fermat 的代数再证对账

题 以 G = (ℤ/13ℤ)×、H = {1, 5, 8, 12}(4 阶子群)为例,完成陪集分拆,并用它复核 Fermat 小定理。

解 陪集按代表元 1, 2, 4 展开:

1·H = {1, 5, 8, 12}; 2·H = {2, 10, 16≡3, 24≡11} = {2, 10, 3, 11}; 4·H = {4, 20≡7, 32≡6, 48≡9} = {4, 7, 6, 9}。

三块各 4 元、互不相交、并集恰为全部 12 个元素:12 = 3 × 4 ✓。于是 [G : H]·|H| = 3·4 = 12 = |G|。任取元素 a(如 a = 7):7 在 4H 中,74 = 2401 = 184·13 + 9 ≡ 9?——检验阶:73 = 343 = 26·13 + 5 ≡ 5 ≠ 1,712 = (74)3 = 93 = 729 ≡ 1 ✓。每个元素的阶(4.9 户口册)都整除 12,故 a12 ≡ 1 对一切 a 成立——Fermat 到手。

陪集分拆的「瓷砖感」值得再看一眼:三块瓷砖形状全同(都是 H 的平移镜像),铺满全群无缝不重。「等大切块 ⟹ 整除」——这个把计数问题变成铺砖问题的动作,是群论最锋利的一刀。
例题

第四章 原根与指标例6 求原根:模 13 的最小原根

题 用判定树求模 13 的最小原根。

解 p − 1 = 12 = 22·3。检验 a = 2:只需查 12 的真素因子幂——26 与 24:

26 = 64 = 4·13 + 12 ≡ 12 ≡ −1 ≠ 1; 24 = 16 ≡ 3 ≠ 1。

26 ≠ 1 → 阶含满 22 因子;24 ≠ 1 → 阶含满 3 因子。两者合拢:ord(2) = 22·3 = 12 ✓。2 就是原根——第一次尝试即命中。

顺手验算法:若先查 26 ≡ 1 会怎样?那阶只能落在 {1, 2, 3, 6} 中,原根梦碎,需换 3 再试。判定树的次序(先大因子后小因子)保证最少的检验次数。

判定树实战:a = 2, n = 12 = 2²·3 问 2⁶ ≡ 1 ? 2⁶ = 64 ≡ −1 ≠ 1 → 留满 2² 问 2⁴ ≡ 1 ? 2⁴ = 16 ≡ 3 ≠ 1 → 留满 3 ord(2) = 4 × 3 = 12:原根 ✓
两次模幂判决一个原根。实战认知:最小原根普遍很小(g(7)=3, g(11)=2, g(13)=2, g(17)=3),试到第三个还没中就该怀疑自己算错了。
例题

第四章 原根与指标例7 原根个数:g(13)=φ(12) 的对账

题 求模 13 的全部原根,并核对「原根个数 = φ(p−1)」。

解 已知 2 是原根,则原根全集 = {2k : gcd(k, 12) = 1}。12 的既约剩余:k = 1, 5, 7, 11。计算:

21 = 2; 25 = 32 ≡ 6; 27 = 128 ≡ 11; 211 = 2048 = 157·13 + 7 ≡ 7。

原根全集 {2, 6, 11, 7}——恰 φ(12) = 4 个 ✓。反向核验(抽一个):66 = 46656?用阶:ord(6) = 12/gcd(12, 5) = 12 ✓(6 = 25,5 与 12 互素)。四个原根的「指标」{1, 5, 7, 11} 正是 12 的既约剩余系——原根的指标恒与 p−1 互素,这是「生成元坐标」的又一次自我印证。

「找到一个 → 写出全部」:原根理论的最实惠红利。不必逐个检验 12 个元素,只需一枚原根加一张 gcd 表。数论里这类「一通百通」的结构性奖励,总是留给先证出存在性的人。
例题

第四章 原根与指标例8 指标表:mod 7 的完整指标表

题 以 g = 3 为原根,编制 mod 7 的完整指标表,并用它解 2x ≡ 5 (mod 7)。

编表 3 的幂巡游:31=3, 32=2, 33=6, 34=4, 35=5, 36=1。登记:

a123456
ind3(a)021453

用表解方程 2x ≡ 5 (7):取指标,2 + ind(x) ≡ ind(5) = 5 (mod 6),故 ind(x) = 3,x = 33 = 27 ≡ 6。验:6·2 = 12 ≡ 5 ✓。整个过程只用了模 6 的一次减法——乘法方程降格为小学算术。

顺手套出逆元 2 的逆 = ind 为 −2 ≡ 4 者 = 4(4·2 = 8 ≡ 1 ✓)。整张逆元表由「指标取负」一键生成:1↔0, 2↔4(2 的逆 4), 3↔1, 5↔1? ——5 的逆是 3(ind 5 = 5, −5 ≡ 1 = ind 3 ✓)。

看清楚了:这张 6 格小表就是 Gauss《算术研究》附录 Index-Tafel 的全息缩影。表的编制只需一次幂巡游,表的回报是全部乘除开方问题降维——投资一次,终身受益。
例题

第四章 原根与指标例9 指标判据:x4≡3(11) 有解吗

题 判断 x4 ≡ 3 (mod 11) 与 x4 ≡ 2 (mod 11) 的可解性,有解者求全部解。

编表 mod 11 的原根 g = 2。幂巡游:2, 4, 8, 5, 10, 9, 7, 3, 6, 1 → ind(3) = 8, ind(2) = 1, ind(4) = 2。

第一题 x4 ≡ 3:取指标 4y ≡ ind(3) = 8 (mod 10)。G = gcd(4, 10) = 2 | 8 ✓ 有解,恰 2 个。约去 2:2y ≡ 4 (5),y ≡ 2 (5),即 y ∈ {2, 7}。回乘法世界:x = 22 = 4 或 x = 27 = 128 = 11·11 + 7 ≡ 7。解 {4, 7}。验:44 = 256 = 23·11 + 3 ✓;74 = 2401 = 218·11 + 3 ✓。

第二题 x4 ≡ 2:4y ≡ ind(2) = 1 (10),G = 2 ∤ 1 → 无解。判据式等价形式:2(11−1)/2 = 25 = 32 ≡ 10 ≢ 1 (11),同样宣判无解。

对比第三章例 11 的「枚举 + 判据」对账表:当时判据 a(p−1)/G ≡ 1 是「天降神谕」,今天它露出了真身——不过是线性方程 G | ind(a) 的指数伪装。谜底揭晓,第三章的账全部结清。
例题

第四章 原根与指标例10 二项方程:x3≡2(13) 的全部解

题 解 x3 ≡ 2 (mod 13) 与 x3 ≡ 8 (mod 13)。

第一题 ind(2) = 1(g = 2):3y ≡ 1 (12),G = gcd(3, 12) = 3 ∤ 1 → 无解。判据复核:212/3 = 24 = 16 ≡ 3 ≢ 1 ✓ 一致。立方世界根本没有 2 这个「号码」。

第二题 ind(8) = 3·ind(2) = 3:3y ≡ 3 (12),3 | 3 ✓ 恰 3 解。y ≡ 1 (4),即 y ∈ {1, 5, 9}。回乘法世界:x = 21 = 2, 25 = 32 ≡ 6, 29 = 512 = 39·13 + 5 ≡ 5。解 {2, 6, 5}。逐一验收:23 = 8 ✓;63 = 216 = 16·13 + 8 ✓;53 = 125 = 9·13 + 8 ✓。

几何解读 三次幂映射在 F_13 上把 12 个非零元压成 4 个像点 {1, 5, 8, 12}(指标 {0, 3, 6, 9}),8 是像点、2 不是——一张 4 层塔的楼层表,胜过所有盲目枚举。

两道题共用一条流水线:取指标 → 线性方程判据 → 指标解回乘 → 逐个验收。第三章的方法在此不是被「应用」,而是被「接管」——幂方程的世界从此由线性方程代治。
例题

第四章 原根与指标例11 离散对数:小模暴力求解与大步小步直觉

题 解 5x ≡ 8 (mod 23);再演示「大步小步」(BSGS)算法如何把它变成 √23 量级的工作量。

暴力 逐个算 51=5, 52=25≡2, 53=10, 54=50≡4, 55=20, 56=100=4·23+8 ✓——x = 6。小模秒解;p 大时暴力 O(p) 步不可行。

大步小步 m = ⌈√22⌉ = 5。写 x = 5i + j(0 ≤ j < 5):方程即 (55)i·5j ≡ 8。先「小步」存表:50..54 = {1, 5, 2, 10, 4}(52 = 25 ≡ 2, 53 = 10, 54 = 50 ≡ 4)。再「大步」计算 55 = 3125 = 135·23 + 20 ≡ 20 及其逆:20−1 = 15(20·15 = 300 = 13·23 + 1 ✓)。逐个算 8·15j:j = 0 → 8(不在表);j = 1 → 120 = 5·23 + 5 ≡ 5 ✓ 命中(5 = 51)。故 x = 1·5 + 1 = 6 ✓。

BSGS 的直觉:用一张 √p 大小的表 + √p 次大步,代替 p 次小碎步——时间换空间的经典组合拳。√21000 依然天文数字,所以 DLP 仍难;但「平方级提速」的思想一路通向 Pollard ρ 与指数演算——攻防双方都在这条轴上赛跑。
例题

第四章 原根与指标例12 综合:Diffie–Hellman 迷你演示(p=23, g=5)

题 在 p = 23, g = 5 上完整走一遍 DH:Alice 秘密 a = 6,Bob 秘密 b = 15,求双方共享密钥。

第零步(资格审验) 5 是 mod 23 的原根吗?22 = 2·11,查 511 与 52:52 = 25 ≡ 2 ≠ 1;511 = 58·52·5,54 = (52)2 = 4, 58 = 16 → 511 = 16·2·5 = 160 = 6·23 + 22 ≡ 22 ≡ −1 ≠ 1 → 阶 22 ✓ 原根合格。

第一步(各自广播) A = 56:54 = 4, 56 = 4·25 ≡ 4·2 = 8 → A = 8。B = 515 = 58·54·52·5 = 16·4·2·5 = 640 = 27·23 + 19 → B = 19。

第二步(各自合成) Alice:K = Ba = 196:192 = 361 = 15·23 + 16 ≡ 16, 194 ≡ 162 = 256 = 11·23 + 3 ≡ 3, 196 = 3·16 = 48 ≡ 2。Bob:K = Ab = 815:82 = 64 ≡ 18, 84 ≡ 182 = 324 = 14·23 + 2 ≡ 2, 88 ≡ 4, 815 = 4·2·18·8 = 1152 = 50·23 + 2 ≡ 2。共享密钥 K = 2 ✓。

DH 全景账:公开信道上什么都没泄露 Alice 秘密 a = 6 算 K = 19⁶ = 2 Bob 秘密 b = 15 算 K = 8¹⁵ = 2 公开信道可见 p=23, g=5, A=8, B=19 从 (8, 19) 反推 (6, 15) 或直接算 2 —— 都是离散对数世界的硬骨头
秘密数字从未上线,密钥却在两端同步成立。本例 p = 23 小到一秒可破;真实部署取 2048 位素数——同一套数学,天壤之别的安全级。
本例把第四章全部主场装备用了一遍:原根资格审验(4.7)、快速幂(第二章)、模幂等式 gab 的双路合成(指标算术 4.11)、以及「公开值不含秘密」的单向性(4.16)。一页例题,全章检阅。
习题

第四章 原根与指标习题课一 元素的阶

练 1.1 求 7 在 (ℤ/24ℤ)× 中的阶。提示:(ℤ/24)× 阶为 φ(24) = 8,候选因子 1, 2, 4, 8。72 = 49 ≡ 1 (24) → 阶 2。(24 不在 Gauss 绿区,群非循环,阶普遍偏小。)

练 1.2 已知 ord(3) = 6 (mod 7),直接写出 32, 33, 36 的阶。提示:ord(32) = 6/gcd(6,2) = 3;ord(33) = 2;ord(36) = 1。公式一遍过,不必逐个乘。

练 1.3 F_11 中 25 = 32 ≡ 10 ≡ −1。问 ord(2) 是多少?提示:(−1)2 = 1 且 ord(2) ∤ 5(否则 25 = 1)→ 阶恰 10。设计巧的题:a5 = −1 是「阶为双数」的指纹。

练 1.4 mod 17 中 28 = 256 = 15·17 + 1 ≡ 1,且 24 = 16 ≡ −1。问 ord(2)?提示:8 整除阶的候选(28 = 1 → 阶 | 8),而 24 ≠ 1 排除因子 1, 2, 4 → 阶 = 8。2 是 mod 17 的「半原根」(阶 8 = 16/2)。

四题同一心法:阶的候选只有群阶的因子,检验从大因子向小因子走,命中即停。群版 Lagrange(阶整除群阶)是全部四题的隐形裁判。
习题

第四章 原根与指标习题课二 阶的计算

练 2.1 用判定树求 ord(3) (mod 13)。提示:n = 12 = 22·3。33 = 27 ≡ 1 → 阶整除 3 → 是 1 或 3;31 ≠ 1 → 阶 3。判定树在大因子处提前短路。

练 2.2 求 ord(5) (mod 23)。提示:n = 22 = 2·11。511 = 3125 mod 23:3125 = 135·23 + 20 ≡ 20 ≡ −3 ≠ 1 → 留满 11 位;52 = 2 ≠ 1 → 留满 2 位。阶 = 22:5 是原根(DH 主角果然合格)。

练 2.3 求 ord(10) (mod 13),并用指标公式复核。提示:判定树:102 = 100 ≡ 9 ≠ 1;103 = 1000 = 76·13 + 12 ≡ −1 ≠ 1;106 = (103)2 ≡ 1 → 阶 6。指标复核:幂巡游 21=2, 22=4, 23=8, 24=3, 25=6, 26=12, 27=11, 28=9, 29=5, 210=10, 211=7 → ind 10 = 10,ord = 12/gcd(12,10) = 6 ✓ 两路同票。教训:查表错一格,全题翻船——再次致敬 Gauss 的表。

练 2.3 是「双路对账」的样板:判定树与指标公式各算一遍,互为验票。两路不一致不是灾难,是抓虫的机会——数论计算的安全网从来不止一层。
习题

第四章 原根与指标习题课三 循环群

练 3.1 (ℤ/9ℤ)× = {1, 2, 4, 5, 7, 8}。验证 2 是原根,并写出全部原根。提示:26 = 64 = 7·9 + 1 ≡ 1,23 = 8 ≠ 1,22 = 4 ≠ 1 → 阶 6 ✓。原根 = 2k(gcd(k,6)=1): 2, 25 = 32 ≡ 5 → {2, 5} = φ(6) = 2 个。9 = 32 在 Gauss 绿区 ✓。

练 3.2 6 阶循环群有几个 3 阶子群?非循环的 6 阶群(S3)呢?提示:循环群每阶恰一:一个 3 阶子群。S3 有一个 3 阶子群(A3)但另有三个 2 阶子群——「每阶恰一」在 2 阶处破产。子群结构是循环性的指纹。

练 3.3 证明:循环群的直积 ⟨a⟩×⟨b⟩(|a| = 3, |b| = 5)仍是循环群,并找出它的生成元。提示:(a, b) 的阶 = lcm(3, 5) = 15 = 全群阶(3, 5 互素)→ (a, b) 生成全群。3 与 5 不互素时(如 3 与 6)最大阶 = lcm(3,6) = 6 < 18 → 非循环——这正是模 15 无原根的群论机理。

练 3.3 把 4.8 的「红色版图」照亮:合数模 = 循环群直积,直积的最大阶 = lcm(各群阶) < 总阶时原根绝迹。「互素才满血」的 lcm 法则,是 Gauss 版图的群论底片。
习题

第四章 原根与指标习题课四 子群唯一性

练 4.1 写出 (ℤ/17ℤ)× 的 8 阶子群。提示:g = 3(原根),H = ⟨316/8⟩ = ⟨32⟩ = ⟨9⟩。成员:9, 92 = 81 ≡ 13, 93 ≡ 15, 94 ≡ 16, 95 ≡ 8, 96 ≡ 4, 97 ≡ 2, 1 → {1, 2, 4, 8, 9, 13, 15, 16}。恰 8 元 ✓。

练 4.2 上题的 8 阶子群里有没有原根(模 17 的)?提示:没有!原根的阶 = 16 ∤ 8,子群元素的阶整除 8。「子群不含生成元」是循环群的普遍现象——塔的每一层都比顶层安静。

练 4.3 证明:循环群 G = ⟨g⟩ 中,元素 a = gk 的阶整除 d ⟺ a ∈ H_d = ⟨gn/d⟩。提示:ord(gk) = n/gcd(n,k) 整除 d ⟺ d·gcd(n,k) ≥ …直接走:ord | d ⟺ (gk)d = 1 ⟺ n | kd ⟺ (n/d) | k ⟺ gk ∈ ⟨gn/d⟩。这恰是 4.5 定理证明的核心半页。

练 4.2 的「安静塔层」有个漂亮的重述:H_d 的元素 = 全群中阶整除 d 的元素——这把「子群」从「封闭集合」升级为「按阶筛出的名单」。练 4.3 则证明这个名单必然自成一群:封闭性从筛选标准中自动涌现。
习题

第四章 原根与指标习题课五 群版 Lagrange

练 5.1 G = (ℤ/11ℤ)×,H = {1, 10}。列出全部陪集。提示:10 ≡ −1,H = {±1}。陪集成对 {a, −a}:{1,10}, {2,9}, {3,8}, {4,7}, {5,6}——五块瓷砖铺满 10 元素,10 = 5×2 ✓。

练 5.2 用陪集论证证明:有限群中阶为 2 的元素个数是奇数(连同单位元凑偶)。提示:把 G 按子群 {1, t}(t 为任一 2 阶元)分陪集:{g, gt}。2 阶元散落在各陪集内每陪集恰一个(gt 的阶 = g 的阶)……更直接:G \ {1} 中非 2 阶元素成对出现(a 与 a−1 不同且互逆),故其个数为偶 → 2 阶元个数 = |G| − 1 − 偶 = |G| − 1 为奇当 |G| 偶。

练 5.3 Euler 定理实战:求 7100 mod 40。提示:φ(40) = φ(8)φ(5) = 4·4 = 16;gcd(7, 40) = 1 → 716 ≡ 1。100 = 6·16 + 4 → 7100 ≡ 74 = 2401 = 60·40 + 1 ≡ 1。答案 1。(74 ≡ 1 (40):2401 − 2400 = 1 ✓。)

群版 Lagrange 的三连击:分砖(练 5.1)、数砖(练 5.2)、用砖(练 5.3)。Euler 定理是它最实惠的输出——任何互素模幂都可先模 φ(n) 降指数,第二章的快速幂从此又多一条捷径。
习题

第四章 原根与指标习题课六 求原根

练 6.1 求模 11 的最小原根。提示:试 2:10 = 2·5;25 = 32 ≡ 10 ≡ −1 ≠ 1,22 = 4 ≠ 1 → 阶 10 ✓。g(11) = 2。

练 6.2 求模 17 的最小原根。提示:试 2:28 ≡ 1(练 1.4)→ 阶 8 ✗。试 3:16 = 24;38 = (34)2,34 = 81 = 4·17 + 13 ≡ 13 ≡ −4,38 ≡ 16 ≡ −1 ≠ 1 → 留满 8 位;32 = 9 ≠ 1 → 留满 2 位。阶 16 ✓ g(17) = 3。

练 6.3 已知 2 是 mod 13 的原根,直接写出全部 4 个原根(不逐一检验)。提示:2k,k ∈ {1, 5, 7, 11} → {2, 6, 11, 7}(例 7 的清单)。一表走天下。

实战节奏:先试 2(命中率最高的小数字),失败换 3、再换 5——最小的原根总是很小(Artin 猜想断言有无穷多素数以 2 为原根,至今未证,是数论名题)。「小原根遍地」既是理论福利,也是密码学选参数的日常。
习题

第四章 原根与指标习题课七 原根个数

练 7.1 不求原根本身,报出模 7、11、17、19 的原根个数。提示:φ(6) = 2;φ(10) = 4;φ(16) = 8;φ(18) = 6。个数只看 p − 1 的分解。

练 7.2 p 取何值时模 p 恰有 2 个原根?提示:φ(p−1) = 2 ⟺ p − 1 ∈ {3, 4, 6} ⟺ p ∈ {4?非素, 5, 7} → p = 5 与 p = 7。(φ(n) = 2 的 n 只有 3, 4, 6。)

练 7.3 mod 13 中,6 是原根(例 7)。写出以 6 为底的 11 的指标 ind6(11)。提示:换底公式:11 = 27(g = 2 坐标),而 6 = 25 → 2 = 65−1,5−1 mod 12 = 5(5·5 = 25 ≡ 1)。11 = 27 = (65)7 = 635 = 611(35 mod 12 = 11)→ ind6(11) = 11。换底 = 坐标乘可逆常数。

练 7.3 的换底公式(indg′(a) = ind_g(a)·indg′(g) 的逆运算)说明:指标坐标系不唯一,但相差的是一个可逆缩放——好比直角坐标系换单位向量。结构不变,刻度平移,这正是「同构下的自由」。
习题

第四章 原根与指标习题课八 指标表

练 8.1 编制 mod 11 的指标表(g = 2),并求 3−1。提示:幂巡游 2, 4, 8, 5, 10, 9, 7, 3, 6, 1 → ind(2)=1, ind(4)=2, ind(8)=3, ind(5)=4, ind(10)=5, ind(9)=6, ind(7)=7, ind(3)=8, ind(6)=9, ind(1)=0。3 的逆:指标取负 −8 ≡ 2 → x = 22 = 4。验:3·4 = 12 ≡ 1 ✓。

练 8.2 用指标表 mod 11 解 5x ≡ 3 (11)。提示:ind 5 + y ≡ ind 3 → 4 + y ≡ 8 (10) → y = 4 → x = 24 = 5。验:5·5 = 25 ≡ 3 ✓。(5 自己是自己的逆。)

练 8.3 用指标表计算 75 mod 11。提示:5·ind(7) = 5·7 = 35 ≡ 5 (10) → 75 = 25 指标者 = 10。验:72 = 49 ≡ 5, 74 ≡ 3, 75 = 21 ≡ 10 ✓。

三题三种用途:求逆(负指标)、解线性方程(指标减法)、算幂(指标数乘)。表在手中,乘法世界的一切运算都改在加法世界办理——这是对数表发明四百年来的同一桩生意,Gauss 只是换了汇率。
习题

第四章 原根与指标习题课九 指标解方程

练 9.1 用指标法解 x5 ≡ 3 (mod 11)。提示:5y ≡ ind 3 = 8 (10)。gcd(5, 10) = 5 ∤ 8 → 无解。判据复核:310/5 = 32 = 9 ≢ 1 ✓。

练 9.2 用指标法解 x5 ≡ 10 (mod 11)。提示:5y ≡ ind 10 = 5 (10),5 | 5 ✓ 恰 5 解:y ≡ 1 (5) → y ∈ {1, 3, 5, 7, 9} → x = 2, 8, 10, 7, 6。验抽:85 = (23)5 = 215 = 25·(210) ≡ 10 ✓。

练 9.3 mod 13 中解 x4 ≡ 3 (13)。提示:ind 3 = 4(24 = 16 ≡ 3)。4y ≡ 4 (12):gcd(4, 12) = 4 | 4 ✓ 恰 4 解,y ≡ 1 (3) → y ∈ {1, 4, 7, 10} → x = 2, 3, 11, 10。验抽:34 = 81 = 6·13 + 3 ✓;104 = (102)2 = 92 = 81 ≡ 3 ✓。

三题流水线全同:取指标 → 判 gcd → 解线性 → 回乘验收。解数 0 / 5 / 4 全由 gcd 一手定夺——幂方程的「可解性政治」,gcd 独裁。
习题

第四章 原根与指标习题课十 二项同余方程

练 10.1 p = 17:x6 ≡ 1 有几个根?提示:gcd(6, 16) = 2 → 2 根:x = ±1 = {1, 16}。对照判据:任何 x 满足 x6 = 1 → x 的阶整除 gcd(6, 16) = 2。

练 10.2 p = 17:x8 ≡ 1 有几个根?x8 ≡ −1 呢?提示:gcd(8, 16) = 8 → x8 ≡ 1 恰 8 根({±1, ±2, ±4, ±8} 的幂集……具体 {1,2,4,8,9,13,15,16} = 8 阶子群)。x8 ≡ −1 = 16:ind(16) = 8(38 ≡ −1? g = 3:38 ≡ 16 ✓);8y ≡ 8 (16) → y ≡ 1 (2) → 8 解 {31, 33, …, 315}。

练 10.3 证明:p 素数时 x(p−1)/2 ≡ ±1 (mod p) 对一切 p ∤ x 成立。提示:xp−1 ≡ 1,而 x(p−1)/2 的平方是 1 → 它是 x2 = 1 的根 → ±1(域中二次方程至多两根)。这半页是第五章 Euler 判据的入口:到底 +1 还是 −1?——「是 QR」与「是 QNR」的分界线。

练 10.3 是全书「承重墙」之一:它把 F_p^× 一分为二——{x : x(p−1)/2 = +1} 与 {x : x(p−1)/2 = −1},两群各 (p−1)/2 人。第五章将证明前者恰是平方像点(二次剩余)。终章的大戏,已经搭好了舞台。
习题

第四章 原根与指标习题课十一 DH 迷你演示

练 11.1 DH with p = 23, g = 5:Alice 的公开值 A = 8。窃听者暴力枚举求 a,第几步命中?提示:51 = 5, 52 = 2, 53 = 10, 54 = 4, 55 = 20, 56 = 8 ✓ 第 6 步。a = 6。小模的「迷雾」其实是一层纱。

练 11.2 同参数,Bob 的公开值 B = 19。求 b 并算共享密钥 K。提示:巡游 57 = 100 ≡ 8? 57 = 56·5 = 8·5 = 40 ≡ 17, 58 ≡ 85 ≡ 16, 59 ≡ 80 ≡ 11, 510 ≡ 55 ≡ 9, 511 ≡ 45 ≡ 22, 512 ≡ 110 ≡ 18, 513 ≡ 90 ≡ 21, 514 ≡ 105 ≡ 13, 515 ≡ 65 ≡ 19 ✓ b = 15。K = 196 = 2(例 12)。

练 11.3 解释为何 DH 中可以公开 g 与 p,却必须保密 a 与 b。提示:公开量扮演「公共舞台」;秘密指数是唯一私产。安全模型:从 (g, ga) 求 a 是 DLP——单向函数把「舞台公开、剧本保密」变成可能。再追问一步:从 (g, ga, gb) 直接算 gab(不经离散对数)是 Diffie–Hellman 问题,被认为与 DLP 同等困难——这道题是整套协议的姓名。

三题从「攻」(暴力枚举)到「守」(密钥合成)再到「理」(安全模型),是密码学学习的标准三段。数论在此不再是艺术,而是基础设施——每次浏览 https 网页,幕后都在上演练 11.2 的大数版。
习题

第四章 原根与指标复盘:错题归档与三问自测

高频错点归档:

错点典型症状纠正钥匙
指标运算用错模数把 ind 运算写在 mod p 下指标住在 mod p − 1 的世界
查表张冠李戴ind 11 = 11 式的「值当指数」底账逐项核对,gk 与 k 两栏分开
忽视 Gauss 版图边界在 mod 8、mod 15 里苦找原根先查 n ∈ {1, 2, 4, pk, 2pk}
解出幂方程不验收指标候选直接当答案回乘法世界逐个验明正身

三问自测:

一问:为什么「存在阶 p−1 的元素」等价于「每个阶 d | p−1 的名额 φ(d) 恰好住满」?提示:4.7 的总账论证——逐项上界 + 总和相等 → 处处顶格;ψ(p−1) ≥ 1 即原根存在。

二问:指标判据 xn ≡ a 有解 ⟺ a(p−1)/G ≡ 1 的「指标翻译」版本是什么?提示:G | ind(a),即线性方程 n·y ≡ ind(a) (p−1) 的可解条件——第三章 3.2 的判据在指数世界的投影。

三问:DH 的安全性押在哪一个问题上?它「难」的数学根源是什么?提示:DLP(及 DH 问题);根源是折返幂运算摧毁单调性,正向易、逆向难的「单向性」——目前无证明,是计算复杂性假设。

复盘三问分别押着本章三根梁:存在性证明、指标翻译机、单向性假设。梁稳则章稳。下一章是全书的珠峰——二次互反律,那里陪集、指标、根计数将同台演出 TheBook 里的双联画。
格物札记

第四章 原根与指标格物札记① 高斯《算术研究》:原根理论的诞生现场〔大衍〕

1801 年,24 岁的 Gauss 出版《算术研究》(Disquisitiones Arithmeticae)。这部用拉丁文写就、自费出版的著作,把此前散落两千年(Euclid、孙子、Fermat、Euler、Lagrange)的数论锻造成第一部系统科学。原根理论占据其第七篇——也是全书最「现代」的一篇。

Gauss 的原根篇章有三件大事:其一,给出阶(「阶」的术语照旧写作 exponents)的系统理论与原根存在性证明——本书 4.7 的计数证明即脱胎于《算术研究》第 55 目的论证;其二,编制模 p ≤ 100 的完整指标表(Index-Tafel),把指标算术变成可操作的工程;其三,以「分解 p − 1」为纲重组整个乘法世界——阶、子群、幂方程的可解性,全部挂在这条分解上。

《算术研究》第七篇的三件礼物 存在性证明 名额上界 + 总账顶格 (本书 4.7) 指标表工程 p ≤ 100 全表编制 (本书 4.12 / 例 8) 「分解 p−1」纲领 阶 · 子群 · 幂方程 全挂一条分解(4.14) 三件礼物同源:先把乘法群炼成循环,再沿 p − 1 的因子解剖它
第七篇的组织方式本身就是方法论示范:一个存在定理 + 一套计算工程 + 一条解剖纲领。今天的教科书仍在沿用这条三段式。
一条连接东西方的暗线:《算术研究》的第三篇讲 CRT 时,Gauss 意识到它与「物不知数」型问题同源(该类问题经传教士传入欧洲);而本书 4.7 的「名额—总账」证明,与秦九韶「大衍总数术」里「各用乘率、合成总数」的构造精神遥相呼应——东侧重构造,西侧重结构,两条河最终汇入同一片海。札记标题里的「大衍」二字,正是向这条汇流致敬。
Gauss 在第七篇末尾留下一条注记:他指出指标理论「与对数理论在精神上完全平行」。两个世纪后,这句话长成了整个公钥密码学——科学史上少有预言如此精确地等待着自己的技术兑现。
格物札记

第四章 原根与指标格物札记② 从原根到公钥时代:离散对数与密码学的握手

1976 年之前,密码学的全部历史都建立在「共享秘密」上:双方先安全地见面、交换密钥,然后才能在公开信道通信。鸡生蛋的死结纠缠了两千年。Diffie 与 Hellman 的革命性发问:能否不需要预先会面,在窃听者眼皮底下协商出密钥?

答案就是本章的主角换了一身戏服。模幂 ga 容易算(快速幂),但由 ga 反推 a(离散对数)没有已知的高效算法——单向性。Alice 与 Bob 各自保守秘密 a、b,只交换 ga 与 gb;两股「公开的幂」在两端各自复合成 gab,而窃听者面对的正是离散对数的高墙。数学上,这堵墙由三块砖砌成:原根存在(4.7,保证坐标世界完整)、指标唯一(4.10,保证 gab 有确定含义)、DLP 之难(4.16,保证墙足够高)。

两千年的握手:从《孙子算经》到 TLS 握手 约 400 年 《孙子算经》 物不知数 1247 《数书九章》 大衍求一术 1801 《算术研究》 原根 · 指标 1976 → 今 Diffie–Hellman DLP · TLS 握手 同一个数学母题的三次变身:联立同余 → 循环乘法群 → 单向函数 「纯数学无用」的最好反证,往往要等两千年才开庭宣判
Hardy 曾为「数论无军事用途」辩护(1940);1977 年 RSA 问世,数论成了国家安全的基础设施。纯数学的账,总是慢付而巨息。
今日的版图:DH 与 ElGamal 建在离散对数上,RSA 建在「大数分解难」上,椭圆曲线密码(ECC)建在椭圆曲线点群的离散对数上——三座城堡共用同一张图纸:找一个只有单向的群运算。量子计算(Shor 算法)能同时攻破三城,后量子密码的军备竞赛正在寻找新图纸——下一座城堡的砖,说不定就藏在本章尚未讲完的某个结构里。
综合站

第四章 原根与指标章小结:知识图谱与方法表

本章围绕一个疑问展开——「谁的幂走遍全群?」——最终把乘法群炼成一条可计算的轴。知识图谱:

第四章知识图谱:一轴定乾坤 原根存在(Gauss) F_p^× 循环 阶的理论 判定树 · φ(d) 名额 群版 Lagrange 陪集分拆 · 子群唯一 指标翻译机 乘法 → mod p−1 加法 幂方程判据 G = gcd(n, p−1) 定解数 单向性 · DH DLP 之难 = 安全之墙
轴心(原根存在)向左长出阶与计数,向右长出指标与密码。左翼是「结构」,右翼是「应用」——一轴两翼。
方法表:判阶用「群阶因子 + 大因子优先」;求原根「先试 2,再试 3、5」;数原根用 φ(p−1);解幂方程三步走(取指标、判 gcd、回乘验收);算大幂用快速幂 + Euler 降指数。
综合站

第四章 原根与指标思想卡:循环——乘法群的隐形齿轮

思想卡 「循环」是群能给出的最强结构承诺:整座群由单个元素的幂复制而成。它把「群的乘法」压缩成「整数的加法」,把一切计数问题化归为 gcd 与 φ。F_p^× 的循环性,是有限世界递给人类的一把万能钥匙。

三条延伸:

其一(分类的边界):并非所有群都循环——Gauss 版图(4.8)就是循环性的疆界图。研究「哪里循环、哪里不循环」,比研究「循环群内部」更能暴露结构的本质。

其二(坐标的自由):原根不唯一(φ(p−1) 个),但任何两个原根坐标系只差一个可逆缩放——结构在换底之下不变。这份「坐标系自由」后来长成同构与不变量的思想。

其三(难度的矿藏):循环让正向幂容易、让逆向对数困难——同一枚硬币的两面,一面是效率(快速幂),一面是安全(DLP)。现代密码学的全部游戏,就是在这枚硬币的边缘寻找支点。

回望四张思想卡:素数是原子(第一章)、CRT 是直积(第二章)、根不过次数(第三章)、循环是齿轮(本章)。每张卡都在说同一件事:找到最小的生成结构,然后让整体从它身上长出来。终章的互反律将是这套哲学的加冕礼——两个素数的平方特征互相决定,最小的结构与整体在更高的对称中合一。
综合站

第四章 原根与指标挑战一 (ℤ/pℤ)× 循环性的完整证明

任务 独立重建 4.7 的证明,五关闯将。每一关给自查点。

第一关(计数函数) 定义 ψ(d) = F_p^× 中阶恰为 d 的元素个数,证明 Σd | p−1 ψ(d) = p − 1。自查:为什么每个元素恰有一个阶?(阶的定义 + Fermat 保证存在。)

第二关(根的封闭) 证明 xd ≡ 1 (mod p) 至多 d 个根。自查:第三章 Lagrange;注意 d | p − 1 时 gcd(d, p−1) = d。

第三关(名额上界) 证明:若 ψ(d) > 0,则阶 d 的元素恰为「某个 d 阶元的 d 个幂中与 d 互素的指数位置」,从而 ψ(d) ≤ φ(d)。自查:ak 的阶 = d/gcd(d, k)(4.2 性质③);「d 个幂互异且都是 xd = 1 的根 → 占满全部根位」这一步在哪里用 Lagrange?

第四关(欧拉 φ 恒等式) 独立证明 Σd | n φ(d) = n(建议:分数 1/n, …, n/n 按约分后分母分类)。自查:分母为 d 的分数恰 φ(d) 个;两类计数(总分数 vs 按分母求和)必须相等。

第五关(合拢) 由逐项 ψ(d) ≤ φ(d) 与总和相等推出处处相等,完成原根存在 + 个数 φ(p−1) 的双杀。自查:「非负逐项不等 + 总和相等 ⟹ 处处相等」这一步为什么成立?(每项差非负且差之和为零。)

五关通关后自问一句:证明的哪一步用了「p 是素数」?——第二关(xd = 1 恰好 d 个根需要域 + gcd(d, p−1) = d)。素数性不是装饰,是承重柱;这也预告了为什么合数模的循环性需要 Gauss 版图单独裁决(4.8)。
综合站

第四章 原根与指标挑战二 指标法解方程组的完整流程

任务 综合运用指标法 + CRT,解联立幂方程组。以「x ≡ 3 (mod 7) 且 x3 ≡ 2 (mod 13)」为 specimen。

第一段(拆模) 两个方程模数互素(7 与 13),CRT 说模 91 下唯一合成——先分别解,再拼装。

第二段(方程一,直接读) x ≡ 3 (7):第一批候选 x ∈ {3, 10, 17, 24, …}(3 + 7k)。

第三段(方程二,指标流水线) mod 13:3y ≡ ind(2) = 1 (12),gcd(3,12) = 3 ∤ 1 → x3 ≡ 2 (13) 无解!方程组当场宣告无解——CRT 都不必上桌。

第四段(换一个 specimen) x ≡ 3 (7) 且 x3 ≡ 5 (13):ind(5) = 9,3y ≡ 9 (12) → y ≡ 3 (4) → y ∈ {3, 7, 11} → x ≡ 23 = 8, 27 = 11, 211 = 7 (13)。三候选 {8, 11, 7}。CRT 合成:与 x ≡ 3 (7) 联立——x = 7k + 3 ≡ 8 (13) → 7k ≡ 5 → k ≡ 5·2 = 10? (7−1 mod 13 = 2)→ k ≡ 10 → x = 73。同法 k ≡ ? 对 11:7k ≡ 8 → k ≡ 16 ≡ 3 → x = 24;对 7:7k ≡ 4 → k ≡ 8 → x = 59。三解 {73, 24, 59} (91)。自查:24 mod 7 = 3 ✓ 243 = 13824 = 1063·13 + 5 ✓;59 mod 7 = 3 ✓;73 mod 7 = 3 ✓ 733 = 389017 = 29924·13 + 5 ✓。

本挑战的真正教益是流程分层:可解性判定(指标)→ 解集生成(线性方程)→ 模间拼装(CRT)。三层各自为政又流水相接——第三章、第四章的全部家当在此并肩作战。能把「无解」在最短流程内判出(第三段),是指标法最实惠的赠品。
综合站

第四章 原根与指标实验:离散对数可视化——幂跳跃与大步小步的两段桥

实验设计 在「指数轴」上观察 5x (mod 23) 的跳跃:把 x = 0..21 的幂值按序连线,折返轨迹乱作一团(混沌的表象);但把「小步表」(50..54)与「大步桥」(乘 5−5)分开画,BSGS 的两段桥结构立刻显形——乱序中藏着分层。

手工数据 5 的幂 mod 23:5, 2, 10, 4, 20, 8, 17, 16, 11, 9, 22, 18, 21, 13, 19, 3, 15, 6, 7, 12, 14, 1。验一处:55 = 3125 = 135·23 + 20 ✓;511 = 22 ≡ −1(练 2.2 已用)。注意第 12 项 511 ≡ −1:轨迹正好走完半圈「反相」,后半段是前半段的 −1 镜像——阶的一半处必有 −1(阶为偶数时的普遍规律)。找 8 的指标:序列第 6 项 → ind(8) = 6(例 11 ✓)。
5x​ (mod 23) 的跳跃轨迹:乱序中藏着「半圈 −1」的对称 x 5x​ x = 0..10(前半段) x = 11..21(−1 镜像区)
纵轴为 5x 的值(1–22),横轴为指数 x。金色前半段与红色后半段逐点镜像:v(x+11) = 23 − v(x),因为 511 ≡ −1——轨迹每 11 步「反相一次」。乱与序同框,正是离散对数的肖像。
升级实验:把 8·15j(BSGS 大步,例 11)逐点标在同一坐标系——可以发现大步串起的是另一条「压缩轨迹」,与小步表正交。两段桥的本质:把一条长链拆成两层短链,用一张表换一半的步数。这个「平方根拆层」思想在因数分解(Pollard ρ)里同样登场。
综合站

第四章 原根与指标章测试与评讲

T1(阶) mod 19:判断 ord(4) 是否为 9?评讲:49 = (22)9 = 218 ≡ 1 ✓ 且 43 = 64 ≡ 7 ≠ 1,41 ≠ 1 → 阶 | 9 且非 1、非 3 → 阶 9 ✓。(18 = 2·9,只需查 29… 直接查 49 与 43 即可收网。)

T2(原根) p = 19:2 是否原根?评讲:29 = 512 = 26·19 + 18 ≡ −1 ≠ 1;22 = 4 ≠ 1(19−1 = 2·9,素因子 2 与 3:查 29 与 26):26 = 64 = 3·19 + 7 ≡ 7 ≠ 1 → 阶 18 ✓ 2 是原根。

T3(个数) mod 19 有几个原根?评讲:φ(18) = 6。

T4(指标方程) 用 g = 2 解 x4 ≡ 5 (mod 19)。评讲:ind(5) = 16(216 = 65536 = 3449·19 + 5 ✓)。4y ≡ 16 (18):gcd(4,18) = 2 | 16 ✓ 恰 2 解,2y ≡ 8 (9) → y ≡ 4 (9) → y ∈ {4, 13} → x = 24 = 16, 213 = 8192 = 431·19 + 3 ≡ 3。解 {16, 3}。验:34 = 81 = 4·19 + 5 ✓。

T5(Gauss 版图) 下列哪些模有原根:9, 14, 15, 25?评讲:9 = 32 ✓;14 = 2·7 ✓;15 ✗;25 = 52 ✓。三个绿区一个红区。

T6(DH 安全) p = 23, g = 5:窃听者已见 A = 8。用 BSGS 求 a,写出小步表与大步序列。评讲:小步 {1, 5, 2, 10, 4}(m = 5);5−5 = 15;大步 8, 8·15 ≡ 5 ✓ 命中 j = 1;a = 1·5 + 1 = 6。与例 11 一致——小模的墙是纸糊的,大素数才是铜墙铁壁。

六题押六章:阶(T1)、原根判定(T2)、φ 计数(T3)、指标流水线(T4)、Gauss 版图(T5)、密码实战(T6)。全对者已手握原根与指标的双保险——终章「二次互反律」的最后一块基石(QR 的群论身份)也已备齐。四站已过,珠峰在望。
第五章

二次剩余与互反律

平方在模 p 下只留下一半土地。欧拉判据、勒让德符号、Gauss 引理层层递进,最终抵达二次互反律——高斯的宝石。计数证明与 Zolotarev 置换证明双线并进,类域论是它的现代回声。全书在此合卷。
页型节奏:讲义×18 → 例题×12 → 习题×12 → 格物札记×2 → 综合站×6
讲义

第五章 二次剩余与互反律5.1 导引:平方在模 p 下还剩下什么?〔少广〕

《九章算术》少广章教我们开平方:给定 55 225,开方得 235——任何正整数(只要恰是完全平方数)都能在实数世界里找到平方根。现在把镜头转向钟表世界:在模 7 的世界里,谁的平方是几?把 1 到 6 逐个平方:

12 ≡ 1,22 ≡ 4,32 ≡ 2,42 ≡ 2,52 ≡ 4,62 ≡ 1(mod 7)。

平方值的清单只有 {1, 2, 4} 三个——在实数世界「张手即来」的平方运算,到了 mod 7 的圆钟上竟只覆盖一半的地盘。3 与 5 在模 7 下永远开不出平方根:方程 x2 ≡ 3 (7) 无解。这不是缺陷,而是结构——平方映射把 6 个非零元压缩成 3 个平方位,而「谁能落进平方位」这个问题,将把我们一路引向 Gauss 的黄金定理。

模 7 的平方表:六个数挤进三个平方位 x x² 1 2 3 4 5 6 1 4 2 2 4 1 三对 ±x(1 与 6、2 与 5、3 与 4)共享同一个平方位:平方映射是「二对一」
同色的两列互为相反数:x 与 7 − x 的平方相同((−x)2 = x2)。六个非零元只产出三个平方值 {1, 2, 4}——「一半」的伏笔在 5.3 揭晓。
本章路线图:给「平方位」起名字(QR / QNR)→ 数清它恰有一半(5.3)→ 欧拉判据一枚快速幂定乾坤(5.4)→ 勒让德符号当语言(5.5)→ Gauss 引理换角度数一数(5.7)→ 攀上二次互反律的珠峰(5.9–5.12)→ 回头收割:开平方、判方程(5.14–5.16)。
讲义

第五章 二次剩余与互反律5.2 二次剩余:QR 与 QNR 的定义

定义(二次剩余) 设 p 为奇素数,p ∤ a。若同余方程 x2 ≡ a (mod p) 有解,称 a 是模 p 的二次剩余(Quadratic Residue,记 QR);若无解,称 a 是模 p 的二次非剩余(QNR)。

「剩余」一词是 Euler 的手笔(residua quadratica):a 是某个数的平方剩下来的余数。0 是特殊户(02 ≡ 0,没有悬念),我们不把它算进两派。看模 11 的完整户口:

平方表:12 ≡ 1,22 ≡ 4,32 ≡ 9,42 ≡ 5,52 ≡ 3,62 ≡ 3,72 ≡ 5,82 ≡ 9,92 ≡ 4,102 ≡ 1(mod 11)。QR(11) = {1, 3, 4, 5, 9}。
F_11 的户口普查:金圈是平方位(QR),灰圈开不出平方根 1 2 3 4 5 6 7 8 9 10 QR(平方位) QNR(开不出) QR(11) = {1, 3, 4, 5, 9}——恰 5 个,(11 − 1)/2 = 5
十个非零元分两派,各占半壁江山。两派的乘法行为大不相同(5.6),而分派规则本身藏着两素数之间的默契——互反律的种子。
习惯记号:QR(p) 表示模 p 的全部二次剩余之集。注意 QR 不是一个「数」而是地位——同一个 a 在不同素数的世界里可能改换门庭:3 是 mod 11 的 QR(3 = 52),却是 mod 7 的 QNR(5.1 的平方表里没有 3)。「a 是否平方」取决于分母 p——这正是互反律要揭示的对称所在。
讲义

第五章 二次剩余与互反律5.3 一半一半:模 p 下恰有 (p−1)/2 个 QR

定理(一半一半) 奇素数 p 下,恰有 (p − 1)/2 个二次剩余,恰有 (p − 1)/2 个二次非剩余。

证明 考虑平方映射 σ: F_p^× → F_p^×,x ↦ x2。它是二对一的:对每个 x,恰有 x 与 −x 两个原像(p 为奇素数,x ≠ −x 当 x ≠ 0;第二章末的域结构保证)。再证每个平方位恰有两个原像:若 x2 ≡ y2,则 (x − y)(x + y) ≡ 0;第三章说过 F_p 是域(无零因子),故 x ≡ y 或 x ≡ −y。于是非零元按「± 对」分组成员 (p − 1)/2 对,每对产出一个平方值,且不同对的平方值互不相同(若 x2 ≡ y2 则 y ≡ ±x,属同一对)。平方值恰 (p − 1)/2 个,其余 (p − 1)/2 个非零元自动落入 QNR。∎

F_13 的「± 对」配给制:六对成员,六个平方位 ±1 = {1, 12} ±2 = {2, 11} ±3 = {3, 10} ±4 = {4, 9} ±5 = {5, 8} ±6 = {6, 7} 1² = 1 2² = 4 3² = 9 4² = 3 5² = 12 6² = 10 六个平方位 {1, 4, 9, 3, 12, 10} = QR(13) = {1, 3, 4, 9, 10, 12}
每对 ±x 恰产出一个平方值,且配给互不重复——「二对一」保证 QR 恰占半数。这张配给表同时演示了 42 = 16 ≡ 3、52 = 25 ≡ 12、62 = 36 ≡ 10 的折算。
群论的视角一句话:平方像 = 二次幂映射的像 = 循环群中「偶数指标位置」构成的指数为 2 的子群——第四章的陪集语言在此发声:QR 是 F_p^× 的指数 2 子群,QNR 恰是它唯一的另一块陪集。这一句将在 5.6 的乘性法则处兑现金息。
「一半一半」是数世界里的稀有事件:实数轴上完全平方数在整数中「越来越稀」(密度零),模 p 的世界里平方位却永远恰占半壁——有限世界抹平了增长的不均匀,只剩对称。
讲义

第五章 二次剩余与互反律5.4 欧拉判据:a(p−1)/2 ≡ ±1

定理(欧拉判据,Euler 1760s) p 奇素数,p ∤ a。则 a(p−1)/2 ≡ ±1 (mod p),且
a(p−1)/2 ≡ +1 ⟺ a 是 QR; a(p−1)/2 ≡ −1 ⟺ a 是 QNR。

证明 四步接力,每步都借用前面章节的存折。① 记 f(x) = x(p−1)/2 − 1:第三章的 Lagrange 定理说 f 至多 (p−1)/2 个根。② 每个 QR 都是根:a ≡ x2 时,a(p−1)/2 = xp−1 ≡ 1(Fermat 小定理,第一章)。③ 数对账:QR 恰有 (p−1)/2 个(5.3),根至多 (p−1)/2 个,而 QR 全在根集里——根集与 QR 集合相等。④ 对任意 p ∤ a,记 t = a(p−1)/2:t2 = ap−1 ≡ 1(Fermat),而 x2 ≡ 1 在域中恰有两根 ±1(第三章),故 t = ±1;由 ③,t = +1 恰当 a ∈ QR。∎

欧拉判据的四步接力:一本三堂旧存折的兑付 ① Lagrange(3.5):x(p−1)/2​ − 1 至多 (p−1)/2 个根 根的席位有上限 ② 每个 QR 都是根:a = x² ⟹ a(p−1)/2​ = xp−1​ ≡ 1 Fermat 小定理(第一章)担保 QR 全部入场 ③ QR 恰 (p−1)/2 个(5.3)⟹ 根集 = QR 集 上限席位恰好坐满,一个不多一个不少 ④ a(p−1)/2​ 平方 ≡ 1 ⟹ 取值 ±1;+1 ⟺ a ∈ QR 欧拉判据成立 QNR 的幂值 −1 不是定义而是推论:席位满了,剩下的只能站另一边
证明的骨架是「计数夹逼」:一个集合被包进同容量的盒子,就再也动弹不得。这与第四章原根存在性证明(名额上界 + 总账顶格)是同一门功夫。
判据立即可用:判 5 是否 mod 11 的 QR,不必查平方表——算 55 (mod 11) 一次快速幂即可(例 3 演示)。判据还是下一页勒让德符号的计算引擎:符号的乘性法则将化作指数的加法,一行得证。
讲义

第五章 二次剩余与互反律5.5 勒让德符号:定义与计算规则

定义(勒让德符号,Legendre 1798) 对奇素数 p 与整数 a:
(a/p)= +1,若 p ∤ a 且 a 是 QR; = −1,若 p ∤ a 且 a 是 QNR; = 0,若 p | a。

横排写不顺眼,Legendre 把它竖起来——分子 a 是「待判定者」,分母 p 是「世界」:

勒让德符号的解剖:分子问,分母答 ( a p ) 分子:待判定的 a(p ∤ a) 分母:素数世界 p 读法:「a 模 p 的勒让德符号」=a 在 p 世界里的平方身份证
符号取值 ∈ {+1, −1, 0}:+1 是「平方公民」,−1 是「非平方公民」,0 表示 p 整除 a(边缘户口)。这个 1798 年的小发明让整章的语言从句子压缩成了代数。

符号与欧拉判据珠联璧合:

(a/p)≡ a(p−1)/2 (mod p)——符号的 ±1 与幂的余数是同一个东西的两张脸。
History note:Legendre 引入了符号,也在 1785–1798 年间多次尝试证明下一节的互反律——他的证明有缺口(「Dirichlet 定理」的雏形当时并未建成)。补上最后一块拼图的是 18 岁的 Gauss。符号沿用至今,而定律的桂冠属于先看清结构的人。
讲义

第五章 二次剩余与互反律5.6 勒让德符号的运算法则:乘性与降模

三条运算法则:符号世界的基本代数 乘性 (ab/p) = (a/p)(b/p) 符号是「完全乘性」的 只认余数 (a/p) 只依赖 a mod p a ≡ b (p) ⟹ (a/p) = (b/p) 平方因子透明 (a²b/p) = (b/p) 分子里的平方直接划掉 乘性一行证:ae​·be​ = (ab)e​,e = (p−1)/2——欧拉判据当场兑现
三条法则同源:分子端的一切运算(分解、约简、去平方)都合法,因为幂指数 e 把乘法变成了加法。

证明要点 乘性:欧拉判据说(a/p)= ±1 且 ≡ ae (mod p),于是 (a/p)(b/p) ≡ (ab)e ≡ (ab/p) (mod p);两个 ±1 若模 p 同余(p ≥ 3)则相等。只认余数:幂 ae 只看 a mod p。平方因子透明:(c2/p) = (c/p)2 = 1(c ≠ 0),由乘性移项即得。∎

例 判 6 在 mod 13 的身份:(6/13) = (2/13)(3/13)。查 QR(13) = {1, 3, 4, 9, 10, 12}:2 ∉ → (2/13) = −1;3 ∈ → (3/13) = +1。故 (6/13) = −1,6 开不出平方根——与查表一致(6 确实不在 QR(13) 中)。
乘性是整个符号体系的杠杆:要判大数 a,把它分解成素因子,逐个判小素数即可——而「素因子在模 p 下的身份」正是互反律的主场。5.13 的流水线将把这一点用到极致。
群论回声(5.3 的欠条兑现):QR 是指数 2 的子群,(a/p) = −1 恰当 a 落在另一个陪集。乘性法则 = 「商群 F_p^×/QR ≅ {±1}」的乘法表——符号本质上是把这个二元素商群写成了数。
讲义

第五章 二次剩余与互反律5.7 Gauss 引理:换个角度数一数

Gauss 引理(1801《算术研究》) p 奇素数,p ∤ a。把 k·a(k = 1, …, (p−1)/2)逐一用「最小绝对余数」折算到 (−p/2, p/2) 区间,记落入负半区(即普通余数 > p/2)的个数为 μ,则(a/p)= (−1)μ。

引擎的钥匙 取 k = 1, …, (p−1)/2,把 ak 折算到 ±1, …, ±(p−1)/2。这 (p−1)/2 个绝对值两两不同:若 |ak| ≡ |aj|,则 ak ≡ ±aj,消去 a 得 k ≡ ±j (mod p);k, j 都在 1 与 (p−1)/2 之间,k ≡ j 给 k = j,k ≡ −j 不可能(和不超过 p − 1 且非零)。于是绝对值恰是 1, …, (p−1)/2 的一个重排。两边取积:∏(ak) ≡ ae·∏k(e = (p−1)/2),而折算把恰好 μ 个因子各添一个负号:∏(ak) ≡ (−1)μ·∏k。消去 ∏k(p ∤ ∏k):ae ≡ (−1)μ——这正是欧拉判据 + 引理的合一。∎

Gauss 引理现场:(6/13) 的六次折算 0 13 阈值 p/2 = 6.5 4 5 6 10 11 12 6k mod 13:6, 12, 5, 11, 4, 10(k = 1…6) 过线者 {10, 11, 12},μ = 3
6 的倍数折算后,金点(余数越过 6.5)共 3 个:μ = 3 为奇数,故 (6/13) = −1——与 5.6 查表结果一致。数个数替代了查表:这就是「换个角度」的含义。
Gauss 引理把「判平方」变成「数过线」:不用分解、不用查表,只要 (p−1)/2 次乘法加一次计数。更重要的是它把符号写成了 (−1)μ——指数 μ 是组合对象,可以被数、被估、被对称性破解。互反律的证明(5.11)正是从「数 μ」开始的。
讲义

第五章 二次剩余与互反律5.8 Gauss 引理的应用:(2/p) 的完全判定

把引理对准 a = 2:折算零工作量——2k 本身就在 1 到 p−1 之间,直接数「哪些 2k 过线」:

μ = #{ k ≤ (p−1)/2 : 2k > p/2 } = #{ k : p/4 < k ≤ (p−1)/2 } = (p−1)/2 − ⌊p/4⌋。

μ 的奇偶只随 p mod 8 变化:p = 8m±1 时 μ 为偶,p = 8m±3 时 μ 为奇(逐一代入即验,见下表实例)。于是得到右补律:

补律(2/p) (2/p)= (−1)(p2−1)/8,即 p ≡ ±1 (mod 8) 时 2 是 QR,p ≡ ±3 (mod 8) 时是 QNR。
实例盘:(2/13) 的过线计数(p = 13) k 2k 过线? 1 2 未过 2 4 未过 3 6 未过 4 8 过 5 10 过 6 12 过 过线者 {8, 10, 12},μ = 3(奇)⟹ (2/13) = −1;13 ≡ 5 ≡ −3 (mod 8),与补律一致 ✓
k = 4, 5, 6 的倍数 8, 10, 12 越过阈值:μ = 3。计数公式 (p−1)/2 − ⌊p/4⌋ = 6 − 3 = 3 直接给出,无需逐格数。
验算带 p = 7(≡ −1):μ = 3 − 1 = 2 偶 → +1 ✓(2 ∈ QR(7));p = 11(≡ 3):μ = 5 − 2 = 3 奇 → −1 ✓;p = 17(≡ 1):μ = 8 − 4 = 4 偶 → +1 ✓(62 = 36 ≡ 2);p = 19(≡ 3):μ = 9 − 4 = 5 奇 → −1 ✓。
口诀:1 减 4 分之零取整——不过更好记的是 p mod 8 的四拍子:±1 舞进平方位,±3 站在圈外。补律是 Gauss 对「特殊分子」的第一个通解,也为 5.14 的「三部曲」备好了第二乐章。
讲义

第五章 二次剩余与互反律5.9 二次互反律:陈述与第一瞥

二次互反律(Theorema Aureum) 设 p, q 为不同的奇素数,则
(p/q)(q/p)= (−1)((p−1)/2)·((q−1)/2)。
等价地:p ≡ 1 (4) 或 q ≡ 1 (4) 时(p/q)= (q/p);p ≡ q ≡ 3 (4) 时(p/q)= −(q/p)。

读一遍:「p 在 q 世界里的平方身份」与「q 在 p 世界里的平方身份」,几乎总是相同——唯独两个都 ≡ 3 (mod 4) 时互相唱反调。素数之间居然存在这样精确的对镜规则,难怪 Gauss 称它「黄金定理」、后人誉之为「数论的宝石」。

互反律的意象:两面互照的镜子,只在一处失真 问 p 的世界:q 平方吗? (q/p) 查 QR(p) 的户口 问 q 的世界:p 平方吗? (p/q) 查 QR(q) 的户口 失真仪:p ≡ q ≡ 3 (4) 时,镜像翻一个负号 翻号的开关握在两个素数自己的「形状」(mod 4)手里
互反律是一面公允的镜子:两个素数互相打量,答案通常一致;失真只发生在「双双 ≡ 3 (mod 4)」的特殊站位——而失真本身也被公式精确记录。
第一瞥 判 (13/17):笨办法是查 QR(17) = {1, 2, 4, 8, 9, 13, 15, 16}——13 在列,+1。互反律的巧办法:13 ≡ 1 (4),不翻号,(13/17) = (17/13) = (4/13) = (2/13)2 = +1。把大分母换成小分母,4 的身份一眼即见——这就是互反律的威力原型。
历史刻度:Euler 在 1783 年前后的书信与论文中已嗅到这条规律(列了大量数表);Legendre 1785 年给出陈述与不完整的证明;1796 年 4 月 8 日,18 岁的 Gauss 在科学日记里写下第一条数学发现——就是它的完整证明。此后一生他另给出 7 个证明;至今全世界的证明已逾两百个。
讲义

第五章 二次剩余与互反律5.10 互反律的数值对账:素数互查表

定律先过一遍普查。取前六个奇素数 3, 5, 7, 11, 13, 17,把每对 (p, q) 的两个方向都填进同一张表——行是分子,列是分母:

(p/q) 互查表:行 p 列 q,金格 +1,灰格 −1 p\q 3 5 7 11 13 17 3 5 7 11 13 17 — −1 +1 −1 +1 −1 −1 — −1 +1 −1 −1 −1 −1 — −1 −1 −1 +1 +1 −1 — −1 −1 +1 −1 −1 −1 — +1 −1 −1 −1 −1 +1 — 金框三对:(3,7)、(3,11)、(7,11)——双双 ≡ 3 (4),乘积 −1;其余十二对乘积 +1
例如行 3 列 7 = (3/7) = −1(3 ∉ QR(7)),行 7 列 3 = (7/3) = (1/3) = +1——乘积 −1,恰是双双 ≡ 3 (4) 的翻号对。15 对全部对账通过(程序复验至 p, q ≤ 47,反例为空)。
读表的正确姿势:盯住一对对称格(如 (5,13) = −1 与 (13,5) = −1)问一句「乘积是 +1 还是 −1」,再对照两个素数的 mod 4 形状。每对都服帖——定律的普查通过,接下来两页给出证明。
讲义

第五章 二次剩余与互反律5.11 互反律证明(一):Gauss 引理计数路线

定理(互反律) 不同奇素数 p, q:(q/p)(p/q) = (−1)((p−1)/2)((q−1)/2)。

证明(Gauss 数格点) 设 p < q。Gauss 引理说 (q/p) = (−1)μ1,其中 μ1 = #{k ≤ (p−1)/2 : qk mod p > p/2}。关键观察:qk mod p > p/2 ⟺ 存在整数 m 使 mp + p/2 < qk < (m+1)p,且 1 ≤ m ≤ (q−1)/2 ⟺ 格点 (k, m) 落在长方形 1 ≤ k ≤ (p−1)/2、1 ≤ m ≤ (q−1)/2 内直线 m = (q/p)·k 的下方。于是 μ1 = 直线下方格点数。对称地,把 p, q 互换再做一遍(用 p·j mod q 过 q/2 线),得 μ2 = 同一长方形内直线上方的格点数。直线上没有格点(qk = mp 要求 p | k,而 k < p)。故 μ1 + μ2 = 长方形总格点数 = ((p−1)/2)·((q−1)/2)。两式相乘:(q/p)(p/q) = (−1)μ1+μ2 = (−1)((p−1)/2)((q−1)/2)。∎

格点战场:(p, q) = (5, 7),线 m = (7/5)k 切分长方形 1 2 1 2 3 k m m = (7/5)k 线下 μ₁ = 3 线上 μ₂ = 3 总格点 2 × 3 = 6 (7/5) = (−1)³ = −1;(5/7) = (−1)³ = −1;乘积 +1(5 ≡ 1 (4),不翻号 ✓)
同一块长方形,斜线一分为二:下方的点数给 (q/p),上方的点数给 (p/q),两者之和恰是总格点数——互反律的指数在几何里「自己加出了自己」。
这个证明把「两个方向的计数」装进同一块长方形,让和 μ1 + μ2 在几何上自动现身——计数证明的典型美学:不需要逐个算出 μ,只需要它们的和。Eisenstein 1844 年的著名证明与此同宗(他画的就是这张格子图)。
讲义

第五章 二次剩余与互反律5.12 互反律证明(二):Zolotarev 置换符号路线

置换的符号 有限集上的置换 ε(σ) ∈ {+1, −1}:写成若干对换(两两交换)的复合时,对换个数的奇偶。基础事实:ε 复合下相乘,ε(σ1σ2) = ε(σ1)ε(σ2)——符号是「奇偶性探测器」。
Zolotarev 引理(1872) 对 p ∤ a,令 σ_a: x ↦ ax (mod p) 是 F_p 上的置换,则 ε(σ_a) = (a/p)。

证明路线 三步(细节到挑战二逐步补齐)。① 双方对 a 完全乘性:σab = σ_aσ_b 给 ε 乘性;勒让德符号的乘性已有(5.6)。② 哨兵值:a = 1 时 σ 为恒等,两边皆 +1;a = −1 时 σ−1 是 (p−1)/2 个对换(x 与 −x 互换),ε = (−1)(p−1)/2 = (−1/p)(5.14 左补律)。③ 主引擎:Gauss 引理的 μ 恰好是 σ_a 把「正半带」{1, …, (p−1)/2} 送进「负半带」的元素个数——把 F_p^× 排成 1, …, ±(p−1)/2 的次序,σ_a 的奇偶性可数出为 (−1)μ = (a/p)。∎

Frobenius 网格:一个置换的两道影子 乘 p 置换 on ℤ/q × ℤ/p 网格 (行列两坐标各自运转) 影子一:乘 p on ℤ/q ε = (p/q) 影子二:乘 q on ℤ/p ε = (q/p) 两影符号之积 = 网格置换的符号,Frobenius 数出它 = (−1)((p−1)/2)((q−1)/2)​
Zolotarev 的洞见:勒让德符号是置换符号的化身。于是互反律变成关于「乘法置换的符号怎样在两个模之间分账」的问题——Frobenius 用 p × q 网格把账一次算清(完整五关见挑战二)。
两条路线的气质对比:Gauss 计数版是组合的——数格点、数过线,和式自动现身;Zolotarev 版是代数的——把符号还原成置换的奇偶,让结构自己开口。TheBook 常常同时备着这两副眼镜:数出来,或转译出去。
为什么会有两个证明?——因为互反律本身就是「对称」的定理:计数对称(格点上下互补)与代数对称(置换符号乘性)是同一枚钻石的两个刻面。看到同一个真理从两个方向抵达,才算真正认识了它。
讲义

第五章 二次剩余与互反律5.13 互反律用例:一次判定一大片

互反律的实战价值:把「模大素数 p 的判定」降维成「模小数的判定」,模数沿 Euclid 算法一路缩小,必然落地。示范一次完整流水线——判 29 是否 mod 43 的 QR:

(29/43) 的降模流水线:每站模数变小 第 1 站 (29/43):43 ≡ 3 (4),29 ≡ 1 (4) → 不翻号 = (43/29)——分母从 43 降到 29 第 2 站 (43/29) = (14/29):分子分解 14 = 2 × 7 = (2/29)·(7/29)——乘性拆包(5.6) 第 3 站 (2/29):29 ≡ 5 ≡ −3 (8) → 右补律给 −1 (7/29):29 ≡ 1 (4) → (29/7) = (1/7) = +1 终点 (29/43) = (−1)·(+1) = −1 29 在 mod 43 的世界开不出平方根 全程零查表、零扫描——三站流水线,模数 43 → 29 → 7 一路收窄
流水线三件套:互反律降分母、乘性拆分子、补律收编 2 与 −1。任何 (a/p) 都能这样在有限步内落地——互反律是「符号世界的 Euclid 算法」。
对比两条路线的成本:直接判定要对着 QR(43) 逐个试 29 的平方根(或做一次 2921 级别的大幂);流水线只用几个一位数乘法。定理不是装饰品,是省油灯——这正是 Gauss 当年在手稿里反复使用它的原因。
讲义

第五章 二次剩余与互反律5.14 互补律:(−1/p) 与 (2/p) 的完整收编

左补律(−1/p) (−1/p)= (−1)(p−1)/2,即 −1 是 QR ⟺ p ≡ 1 (4)。
右补律(2/p) (2/p)= (−1)(p2−1)/8,即 2 是 QR ⟺ p ≡ ±1 (8)。

证明 左:欧拉判据直接代入 a = −1:(−1/p) ≡ (−1)(p−1)/2 (mod p),两边同为 ±1 故相等。几何读法:x2 ≡ −1 (p) 有解 ⟺ 存在「模 p 的 i」⟺ F_p 里有第四次单位根 ⟺ 4 | p − 1(第四章循环群:x4 = 1 恰 4 根 ⟺ 4 | p−1)。右:5.8 已证。∎

互反律三部曲:主律 + 左右两支补律 左补律 (−1/p) = (−1)(p−1)/2​ 口令:p ≡ 1 (4) 收编 −1 主律 (p/q)(q/p) = (−1)…​ 口令:双双 ≡ 3 (4) 才翻号 右补律 (2/p) = (−1)(p²−1)/8​ 口令:p ≡ ±1 (8) 收编 2 三部曲合璧:(a/p) 对任意 a 全部可判——分解、拆包、降模、收编
Gauss 在《算术研究》第 131 目陈述的正是这三条一起的「基本定理」:主律管素数对,两支补律管特殊分子 −1 与 2。三者合璧,勒让德符号对一切整数 computable。
例 x2 + 1 ≡ 0 (29) 有解吗?29 ≡ 1 (4),左补律放行。找根:122 = 144 = 145 − 1 = 5·29 − 1 ≡ −1 (29) ✓,根为 ±12 即 {12, 17}。模 p 的「虚数单位 i」就此上岗——29 的世界里 i = 12。
「收编」完成后的版图:判 (a/p) 的全部原料只剩三个动作——分解 a(乘性)、对每个素因子降模(互反)、用补律处理 −1 与 2。下一节我们给这个「判定」配上「求解」:判出 +1 之后,平方根本身怎么找?
讲义

第五章 二次剩余与互反律5.15 求平方根:x2≡a(p) 的解法工具箱

开平方工具箱:四件工具按场景取用 工具一 小表扫描 p 小时列平方表直查 x²≡2(7):3² = 9 ≡ 2,根 {3, 4} 成本 O(p),只用于小 p 工具二 凑眼前解 先试小数的平方 x²≡7(29):6² = 36 ≡ 7,根 {6, 23} QR 的根常「藏得不深」 工具三 魔杖(p ≡ 3 (4)) x = a(p+1)/4​ x²≡3(11):3³ = 27 ≡ 5,根 {5, 6} 一次快速幂,必有解时必中 工具四 指标法(第四章) x = gind(a)/2​ x²≡10(13):ind(10) = 10,x = 2⁵ = 6 QR ⟺ 指标为偶,除 2 即回乘 第二根永远是 −x:两根之和 p,两根之积 a(Vieta 在模世界同样作数)
工具三的魔杖最令人惊喜:证明一行——x2 = a(p+1)/2 = a·a(p−1)/2 = a·(a/p) = a(判据保证最后一步是 +1)。指数 (p+1)/4 恰好整除的运气,是 p ≡ 3 (4) 白送的。
工具四是第四章指标翻译机的直接红利:在以原根 g 为底的坐标系里,「平方」就是「指标 ×2」,于是开平方 = 指标除以 2——除法在 mod p−1 里恰因「指标为偶」而可行。四个工具合起来覆盖一切场景;p ≡ 1 (4) 且手无指标表的场景留给下一节的现代算法。
讲义

第五章 二次剩余与互反律5.16 开平方的现代算法:Tonelli–Shanks 预告

p ≡ 1 (4) 时魔杖失灵((p+1)/4 不是整数),指标法要整张对数表。1972 年前后,Tonelli 与 Shanks 给出通吃一切的迭代算法。设 p − 1 = 2s·q(q 奇),算法骨架:

① 找一个 QNR 作哨兵 z(Gauss 引理保证存在,随机取约一半命中率)。② 记 c = zq,R = a(q+1)/2,t = aq,M = s。③ 当 t ≠ 1:找最小 i 使 t2i ≡ 1,令 b = c2M−i−1,R ← R·b,t ← t·b2,M ← i。④ t = 1 时 R 即平方根。
全程示范 x2 ≡ 2 (17):p − 1 = 16 = 24·1(s = 4, q = 1)。哨兵 z = 3:(3/17) = −1 ✓。初值 c = 3,R = 21 = 2,t = 2,M = 4。第一轮:t = 2 的幂阶——22 = 4,24 = 16 ≡ −1,28 ≡ 1,最小 i = 3;b = 320 = 3;R = 2·3 = 6;t = 2·9 = 18 ≡ 1;M = 3。第二轮:t = 1,停。x = 6:62 = 36 ≡ 2 (17) ✓,根 {6, 11}。
Tonelli–Shanks 轨迹表:x² ≡ 2 (17) 的两轮迭代 状态 R(候选根) t = aq​·… M b 动作 初值 2 2 4 — 设 c=3, z 哨兵 第一轮 2·3 = 6 2·3² = 18 ≡ 1 i = 3 3 2⁴ ≡ −1 ⟹ i = 3 第二轮 R = 6 即根 t = 1,停 M = 3 — 验收 6² = 36 ≡ 2 ✓ 每轮把 t 的「2-阶」至少砍半:至多 s 轮收敛,总代价 O(s²) 次模乘
算法的精神是「降阶追击」:t 离 1 总隔着一个 2 的幂,每轮用一个平方根哨兵把幂次砍半。M 从 4 降到 3 再到 0——阶在迭代中蒸发。
Tonelli–Shanks 是今天椭圆曲线密码(ECDSA 签名恢复)里真实运行的 subroutine——1972 年的教室算法守卫着 2026 年的钱包。它在 p ≡ 1 (4) 且 s 很大时最慢;更快的 「Schoof」级算法要动用更深的结构——数论的长征永远有下一站。
讲义

第五章 二次剩余与互反律5.17 现代回响:从互反律到类域论——数论的长征〔少广〕

互反律不是终点,而是一条长征路的第一个营地。Gauss 晚年(临终前完成的最后一篇论文)把它推广到双二次互反律——在 Gaussian 整数 ℤ[i] 里定义「四次剩余符号」;Eisenstein 与 Jacobi 竞赛般给出三次互反律(ℤ[ω] 世界)。每换一个数的世界,互反律就换一副面孔,而骨架不变。

互反律的两百年长征 1796 Gauss 首证 首证日记 1801 《算术研究》 黄金定理 1844 Eisenstein 格点证明 1897 Hilbert 《数报告》 1927 Artin 互反律 类域论核心 1967 → Langlands 远方的地平线 同一条定理的四次变身:素数对 → 数域 → Galois 群 → 自守表示
一句话的类域论:互反律说「阿贝尔扩张的 Galois 群完全由基数域的算术掌控」——Artin 把这句话从 ℚ 推广到一切数域。Langlands 纲领则问:非交换的世界里,这面镜子还照得见什么?
两百年间证明逾两百个——Brahmagupta 恒等式式的「人人想再摸一遍的宝石」。为什么?因为每个证明都揭示定律的一个侧面:计数(Gauss/Eisenstein)、置换符号(Zolotarev)、Galois 群(Frobenius)、分析(局部方法)……定理越深,通往它的路越多。
讲义

第五章 二次剩余与互反律5.18 全书结语:从物不知数到高斯的宝石

五站旅程,此刻回望:「物不知数」的钟声把我们领进带余除法的世界(第一章);CRT 把两个钟表焊成一个直积(第二章);多项式与域让我们看清「根不会太多」(第三章);原根把乘法群炼成一条循环的轴(第四章);最终,在两素数互相对照的镜子里,我们捡起了高斯的宝石(本章)。

五站登高:每一章都站在前一章的肩上 整除 同余 多项式 原根 互反 珠峰 带余除法 → CRT → 域 → 循环 → 对称:一条越走越高的结构阶梯
《九章》的「物不知数」与 Gauss 的「黄金定理」,在这条阶梯的两端遥遥相望——从解一个具体的谜,到看清素数世界的对称法则。
全书反复奏响的三重奏:① 结构——把计算问题翻译成结构问题(方程 → 域;判平方 → 商群);② 计数——上界夹逼出等式(Lagrange、欧拉判据、原根存在性、互反律的格点证明);③ 对称——最深的定理说的都是对称(CRT 的直积、循环的旋转、互反的镜像)。
1796 年 4 月 8 日,Gauss 在日记里用拉丁文记下他的第一个数学发现——二次互反律的证明。同一年他十九岁。宝石落进他掌心的那一刻,「物不知数」的东方钟声已响了一千六百年。数学没有国界与古今,只有一座永远在长高的阶梯——本书把送到了 1801 年的山腰,珠峰之上,Langlands 的云海在等。
例题

第五章 二次剩余与互反律例1 QR 枚举:mod 7 的平方表

问题 列出 QR(7) 的全部元素,并指出每个元素的「± 对」出身。

解 逐一平方(k = 1, …, 3 即可——k 与 7 − k 的平方相同,只需算半张表):12 ≡ 1;22 ≡ 4;32 ≡ 9 ≡ 2。三个平方值两两不同,由「二对一」定理(5.3)这已是全部:QR(7) = {1, 2, 4}。

出身表:1 = 12 = 62;4 = 22 = 52;2 = 32 = 42。± 对 {1,6}、{2,5}、{3,4} 与三个平方位一一配给。
半张表定全案:k = 1, 2, 3 的平方已覆盖全部平方位 1² = 1 (对 {1, 6}) 2² = 4 (对 {2, 5}) 3² = 9 ≡ 2 (对 {3, 4}) 三个平方位 {1, 4, 2} 已配满:(7−1)/2 = 3 个,恰好停手 QNR(7) = {3, 5, 6}——另一半户口,同样 (7−1)/2 个
「半张表」技巧通用于一切素数:只算 k ≤ (p−1)/2 的平方,凑满 (p−1)/2 个互异值即收工——5.3 的二对一在枚举时的直接红利。
验算习惯:QR(p) 中任何两个元素相乘仍是 QR(子群对乘法封闭)——1·2 = 2 ✓,2·4 = 8 ≡ 1 ✓,1·4 = 4 ✓。而 QR × QNR 必是 QNR:2·3 = 6 ∈ QNR ✓。这套乘法指纹在例 4、例 8 还会当裁判。
例题

第五章 二次剩余与互反律例2 一半一半:QR 计数对账(p=11, 13)

问题 枚举 QR(11) 与 QR(13),验证「恰 (p−1)/2 个」并核对 ± 配给制。

解 p = 11:算 k = 1…5:12 = 1,22 = 4,32 = 9,42 = 16 ≡ 5,52 = 25 ≡ 3。QR(11) = {1, 3, 4, 5, 9},恰 5 = (11−1)/2 个。p = 13:算 k = 1…6:12 = 1,22 = 4,32 = 9,42 = 16 ≡ 3,52 = 25 ≡ 12,62 = 36 ≡ 10。QR(13) = {1, 3, 4, 9, 10, 12},恰 6 = (13−1)/2 个。

配给对账(p = 13):{1,12}→1,{2,11}→4,{3,10}→9,{4,9}→3,{5,8}→12,{6,7}→10——六对六位,无一挤占、无一空缺。
两个世界的户口册:半数定律的分毫无差 p = 11:5 个平方位 {1, 3, 4, 5, 9} 五对 ±:{1,10}{2,9}{3,8}{4,7}{5,6} 对位产出 1, 4, 9, 5, 3 ✓ p = 13:6 个平方位 {1, 3, 4, 9, 10, 12} 六对 ±:{1,12}{2,11}{3,10} {4,9}{5,8}{6,7} 产出 1,4,9,3,12,10 ✓ 两个世界的 QNR 同样各占一半:{2,6,7,8,10} 与 {2,5,6,7,8,11}
枚举时顺手记下每对的「产出」,一旦两个 ± 对撞出同一个平方值,就说明数错了——配给制自带纠错码。
留一个眼力练习:QR(13) 里 3 与 10 互为相反数(3 + 10 = 13),9 与 4、12 与 1 也是——因为 −1 = 122 是 QR(13)(13 ≡ 1 (4),左补律预告!)。QR(11) 里没有一对互补数——11 ≡ 3 (4),−1 开不出平方根。两份户口册已悄悄写好了左补律。
例题

第五章 二次剩余与互反律例3 欧拉判据:5 是否 mod 11 的 QR

问题 用欧拉判据判定 5 是否 mod 11 的二次剩余,并用平方表复核。

解 欧拉判据要算 5(11−1)/2 = 55 (mod 11)。平方接力:52 = 25 ≡ 3;54 = 32 = 9;55 = 54·5 = 9·5 = 45 ≡ 1 (mod 11)。幂值为 +1,判据宣判:5 是 QR mod 11。

复核 例 2 的平方表:5 = 42(16 ≡ 5)✓。两根为 ±4 即 {4, 7}。

平方接力:三次乘法走完 5⁵ 5² = 25 ≡ 3 (11) 5⁴ = 3² = 9 (再自乘一次) 5⁵ = 9·5 = 45 ≡ 1 (11) 幂值 +1 ⟺ QR:判据宣判,平方表盖章(5 = 4²) 对照:6⁵ ≡ 10 ≡ −1 (11)(习题课二),6 果然不在 QR(11) 中
判据的计算量是 O(log p) 次乘法——对大素数远胜查表。平方接力(先平方再自乘)是快速幂的最小样本。
判据的另一种用法是「反向点名」:把 1 到 10 的判据值全部算出,+1 的位置恰是 QR(11) = {1, 3, 4, 5, 9}——判据是户口册的代数复写。这也是第四章练 10.3(x(p−1)/2 ≡ ±1 承重墙)在本章的正式上岗。
例题

第五章 二次剩余与互反律例4 勒让德符号:(−7/13) 的层层降模

问题 计算勒让德符号 (−7/13)。

解 三步降模流水线。第一步,乘性拆包:(−7/13) = (−1/13)(7/13)。第二步,左补律:13 ≡ 1 (4),(−1/13) = +1。第三步,互反律:7 ≡ 3 (4) 而 13 ≡ 1 (4),翻号开关未触发,(7/13) = (13/7) = (6/7);分解 (6/7) = (2/7)(3/7):右补律 7 ≡ −1 (8) 给 (2/7) = +1;互反律给 (3/7) = −(7/3) = −(1/3) = −1(双双 ≡ 3 (4),翻号)。合计 (6/7) = −1,故

(−7/13) = (+1)·(−1) = −1。
(−7/13) 的四站流水线 (−7/13) 拆包 (−1/13)·(7/13) 左补律 +1 (7/13) = (13/7) 互反不翻号 (6/7) = −1 结论 −1 (6/7) 的拆解:(2/7) = +1(7 ≡ −1 mod 8)· (3/7) = −1(双 3 翻号) 复核:QR(13) = {1,3,4,9,10,12},7 不在册 ⟹ (7/13) = −1 ✓
流水线的每个站都只用一位数口诀:拆包(乘性)、验 mod 4(左补 + 翻号开关)、验 mod 8(右补)、验 mod 3(落地)。符号代数的全部技能在此一役。
负号的去向值得一记:本题里 (−1/13) = +1,「−7」与「7」同命运;若分母是 11(≡ 3 (4)),负号就会翻盘。处理带负号的分子,永远是先分出 (−1/p),再决定它的去留。
例题

第五章 二次剩余与互反律例5 Gauss 引理:(5/13) 的跳跃计数

问题 用 Gauss 引理计算 (5/13),并复核。

解 p = 13,阈值 p/2 = 6.5。算 5k mod 13(k = 1, …, 6):5, 10, 15 ≡ 2, 20 ≡ 7, 25 ≡ 12, 30 ≡ 4。过线(> 6.5)者:10, 7, 12——μ = 3 为奇数,(5/13) = −1。

复核 QR(13) = {1, 3, 4, 9, 10, 12},5 不在册 ✓。另可用欧拉判据双保险:56 = (52)3 = 253 ≡ 123;12 ≡ −1,故 56 ≡ (−1)3 = −1 (13) ✓。

(5/13):六个余数在 13 的刻度尺上,三个金点过线 0 13 6.5 2 4 5 7 10 12 余数序列 5, 10, 2, 7, 12, 4(k = 1…6) 过线 {7, 10, 12},μ = 3(奇)
五个灰点留在下半带,三个金点跃过阈值——「数个数」三秒出判。序列里的 2 与 4、5 与 12 等互为 ± 对的绝对值搭配,正是引理「绝对值恰为 1…6 的重排」的现场版。
把本题与 5.7 的 (6/13)、5.8 的 (2/13) 摆在一起:同一把刻度尺,三个分子,三次计数,三次宣判与查表一致。Gauss 引理的「计数器」已在本册校准完毕——下一页它会面对更挑剔的委托人。
例题

第五章 二次剩余与互反律例6 补律应用:(2/p) 的快速判定

问题 口算 (2/p) 对 p = 17, 19, 23, 31, 41 的值。

解 右补律只看 p mod 8。17 ≡ 1 → +1;19 ≡ 3 → −1;23 ≡ 7 ≡ −1 → +1;31 ≡ 7 ≡ −1 → +1;41 ≡ 1 → +1。

抽验:QR(17) 含 2(62 = 36 ≡ 2)✓;QR(19) = {1,4,5,6,7,9,11,16,17} 不含 2 ✓;QR(23) 含 2(52 = 25 ≡ 2)✓;QR(41) 含 2(172 = 289 = 7·41 + 2 ≡ 2)✓。
p mod 8 的四拍子:±1 进场,±3 出局 17, 41 ≡ 1 (8) (2/p) = +1 19 ≡ 3 (8) (2/p) = −1 23, 31 ≡ 7 (8) (2/p) = +1 例:13 ≡ 5 ≡ −3 (8) (2/p) = −1 记忆图样:素数在 8 的钟面上只可能住 1, 3, 5, 7 四间房——1 与 7 的住户收留 2
五个 p 的口算 + 四处抽验,全部吻合。补律的实用价值:判 (2/p) 从「开平方找 2」压缩成「看一眼个位数」——p mod 8 由末三位决定。
例题链的拼图意识:本题的 (2/17) = +1 将在例 8、习题课七充当「终局裁判」;(2/13) = −1 在例 4 流水线里已上岗。符号世界里没有孤立的计算,每个结果都是另一题的存折。
例题

第五章 二次剩余与互反律例7 互反对账:(3/11) 与 (11/3) 的互查

问题 分别直接计算 (3/11) 与 (11/3),验证互反律,并解释翻号开关。

解 (3/11):找 3 的平方根——52 = 25 = 22 + 3 ≡ 3 (11),故 (3/11) = +1(另一根 −5 ≡ 6)。(11/3):11 ≡ 2 (3),而 mod 3 的平方表只有 12 = 1、22 = 1,2 不是平方,故 (11/3) = (2/3) = −1。

对账 乘积 (3/11)(11/3) = −1。翻号开关:3 ≡ 3 (4) 且 11 ≡ 3 (4)——双双 ≡ 3,互反律预言乘积 (−1)1·5 = −1 ✓。

一对翻号搭档:两个「3 (4) 世界」互唱反调 mod 11 的世界 3 = 5²(平方公民) (3/11) = +1 mod 3 的世界 11 ≡ 2,平方只有 1 (11/3) = −1 ✕ 双双 ≡ 3 (4):镜像翻一个负号——(3/11)(11/3) = −1 = (−1)((3−1)/2)((11−1)/2)​
3 在 11 的世界是平方(3 = 52),11 在 3 的世界却不是——「失真的镜子」的活标本。互反律把这种失真的时机(双双 ≡ 3 (4))写成了公式。
这个例题还藏着一句赠言:(3/11) 的判定用的是「凑眼前解」(工具二),(11/3) 的判定用的是「世界太小」——mod 3 的平方表只有一格。大世界与小世界各有所长,互反律正是让二者互相代工的经纪人。
例题

第五章 二次剩余与互反律例8 综合判定:(15/101) 的完整流程

问题 计算 (15/101)。

解 第一步,乘性拆包:(15/101) = (3/101)(5/101)。第二步,逐因子过流水线。3 ≡ 3 (4) 而 101 ≡ 1 (4):翻号开关未触发,(3/101) = (101/3) = (2/3) = −1(101 ≡ 2 (3),mod 3 平方表里 2 出局)。5 ≡ 1 (4):同路放行,(5/101) = (101/5) = (1/5) = +1。第三步,合乘:

(15/101) = (−1)·(+1) = −1——x2 ≡ 15 (101) 无解。
(15/101):101 的世界,三次一位数裁决 拆包:(15/101) = (3/101)·(5/101) (3/101) = (101/3) = (2/3) = −1 (5/101) = (101/5) = (1/5) = +1 合乘:−1 × +1 = −1(判 15 在 mod 101 开不出平方根)
分母 101 看似吓人,实际裁决全由一位数完成:mod 3 的平方表一格、mod 5 的平方表两格。互反律把「大素数判定」批发给「小素数判定」。
技术复盘:① 分子先拆素因数;② 每个因子先看 mod 4 决定是否翻号;③ 降模后立刻约简成一位数;④ 落地值用最小的平方表收尾。四步走完,101 没有被「算」过任何平方——定理替我们算完了。
例题

第五章 二次剩余与互反律例9 求平方根:x2≡2(7) 与 x2≡3(11)

问题 解 x2 ≡ 2 (7);解 x2 ≡ 3 (11)。

解(其一) x2 ≡ 2 (7):判 (2/7) = +1(7 ≡ −1 (8))。小表扫描(工具一):12 = 1,22 = 4,32 = 9 ≡ 2 ✓。根 {3, 4}(4 = 7 − 3 是 −3)。

解(其二) x2 ≡ 3 (11):判 (3/11) = +1(例 7,3 = 52)。p = 11 ≡ 3 (4),魔杖(工具三):x = 3(11+1)/4 = 33 = 27 ≡ 5 (11)。根 {5, 6}。

两件工具的实弹射击 工具一:小表扫描(p = 7) 1² = 1 ✗ 2² = 4 ✗ 3² = 9 ≡ 2 ✓ 根 {3, 4},验收 4² = 16 ≡ 2 ✓ 工具三:魔杖(p = 11 ≡ 3 mod 4) x = 3(p+1)/4​ = 3³ = 27 27 ≡ 5 (11) ✓ 根 {5, 6},验收 5² = 25 ≡ 3 ✓ 魔杖的秘密一行:x² = a(p+1)/2​ = a·a(p−1)/2​ = a·(a/p) = a
左:枚举三次命中,成本 O(p);右:一次快速幂命中,成本 O(log p)。p ≡ 3 (4) 时魔杖必中——指数 (p+1)/4 的整除性是这半个素数世界的礼物。
两根的结构值得单独立牌:x2 ≡ a (p) 一旦有解,两根必是 ±x0——和 ≡ 0、积 ≡ −a(把方程写成 x2 − a ≡ 0,Vieta 的模版版照用)。验:3 + 4 ≡ 0 (7)、3·4 = 12 ≡ −2 (7);5 + 6 ≡ 0 (11)、5·6 = 30 ≡ −3 (11)。记住「积是 −a」,验收时就不会错判。
例题

第五章 二次剩余与互反律例10 全集对账:p=29 的 QR 与理论预测

问题 枚举 QR(29),对账三件事:个数、互补配对、指定方程 x2 ≡ 16 (29) 的根。

解 算 k = 1…14:1, 4, 9, 16, 25, 36 ≡ 7, 49 ≡ 20, 64 ≡ 6, 81 ≡ 23, 100 ≡ 13, 121 ≡ 5, 144 ≡ 28, 169 ≡ 24, 196 ≡ 22。QR(29) = {1, 4, 5, 6, 7, 9, 13, 16, 20, 22, 23, 24, 25, 28},恰 14 = (29−1)/2 个。

互补配对:{1,28} {4,25} {5,24} {6,23} {7,22} {9,20} {13,16}——七对、每对之和 29。−1 ∈ QR(29 ≡ 1 (4),左补律),故 QR 对取负封闭:这七对正是「QR 与 −QR 重合」的收据。x2 ≡ 16 (29):16 = 42,根 {4, 25}(= ±4)。
QR(29) 的互补七对:上排成员,下排是各自的 −1 变身 1 4 5 6 7 9 28 25 24 23 22 20 第七对 {13, 16} 居中自配:13 + 16 = 29,16 = 4²,13 = (−4)² = 25² ✓ 上排加下排(含 13 与 16)= 全部 14 个 QR;每对之和 29 = 互补收据
「QR 对取负封闭」是 p ≡ 1 (4) 的指纹:−1 本身是平方(122 ≡ −1),取负在 QR 内部自由通行。若 p ≡ 3 (4)(如 11、7),QR 与 −QR 完全错开,互补对将一上一下分属两派。
14 个值里还躺着一张熟面孔:例 12 要用的 7(62 = 36 ≡ 7)。全集枚举是「笨功夫」,但笨功夫每一步都在给巧办法作证——个数 ✓、配对 ✓、指定方程 ✓,p = 29 的世界全部对上账。
例题

第五章 二次剩余与互反律例11 组合应用:x2+y2≡0(p) 的解数

问题 数一数 x2 + y2 ≡ 0 (p) 的解 (x, y) 个数,p = 5, 7, 13。

解 按左补律分两个世界。若 p ≡ 3 (4)(如 p = 7):−1 不是 QR,于是 x2 + y2 ≡ 0 且 y ≠ 0 将给出 (x/y)2 ≡ −1,矛盾——唯一解是 (0, 0),解数 1。若 p ≡ 1 (4)(如 p = 5, 13):存在 x0 使 x02 ≡ −1(p = 5 时 x0 = 2(22 = 4 ≡ −1);p = 13 时 x0 = 5(52 = 25 ≡ −1,另一根 8))。则 x2 + y2 ≡ 0 ⟺ x ≡ ±x0·y:对每个 y ∈ F_p 得 x = x0y 与 x = −x0y,y = 0 时两支重合为 (0, 0)。解数 = 1 + 2(p−1) = 2p − 1:p = 5 给 9,p = 13 给 25,程序复验一致 ✓。

两个世界的解数:1 对 2p−1 p ≡ 3 (4):p = 7 −1 开不出平方根 斜线 x = ±x₀y 不存在 解数 1(只有原点) p ≡ 1 (4):p = 5, 13 x₀² ≡ −1:p=5 取 x₀=2,p=13 取 x₀=5 解 = 直线 y = ±x₀⁻¹x 上的全部点 解数 2p − 1 = 9, 25 ✓ x² + y² ≡ 0 的解集是两条过原点的直线——「圆」退化为「交叉线」,这正是 −1 的几何肖像
代数事实的几何翻译:p ≡ 1 (4) 时解集恰是两条过原点的直线 x = ±x0y(p = 5 时 x0 = 2,p = 13 时 x0 = 5),2p − 1 个点;p ≡ 3 (4) 时这样的直线不存在,只剩原点。方程解集的「形状分野」,正是左补律的计数化身,也是 Fermat 两平方和定理的模 p 预演。
「解数 1 还是 2p − 1」是一道分水岭:它把「−1 是否开平方」这件代数小事,放大成了「方程解集的几何形状」这件大事。下一章外(习题课九)会亲手数 p = 11(1)与 p = 17(33)来巩固它。
例题

第五章 二次剩余与互反律例12 综合:从符号到解方程的完整作战图

问题 解 x2 ≡ 7 (29):先判定,再求根,最后验收。

第一阶段(判定) (7/29):7 ≡ 3 (4) 而 29 ≡ 1 (4),翻号开关未触发,(7/29) = (29/7) = (1/7) = +1——有解,开战。

第二阶段(求根) p = 29 ≡ 1 (4),魔杖失灵;改用工具二「凑眼前解」:62 = 36 = 29 + 7 ≡ 7 (29) ✓。根 x0 = 6。

第三阶段(验收) 两根 {6, 23}(23 = 29 − 6 = −6):62 = 36 ≡ 7 ✓;232 = 529 = 18·29 + 7 = 522 + 7 ≡ 7 ✓。和 6 + 23 = 29 ≡ 0,积 6·23 = 138 = 4·29 + 22 ≡ −7 (29) ✓(Vieta 模版:和 0、积 −a)。

作战图:判定 → 求根 → 验收 ① 判定 (7/29) = (1/7) = +1 互反降模,三口算完 ② 求根 6² = 36 = 29 + 7 ≡ 7 工具二:凑眼前解 ③ 验收 23² = 529 ≡ 7 ✓ 和 ≡ 0,积 ≡ −7 ✓ 解集 {6, 23};工具未命中时召唤 Tonelli–Shanks 本例 7「藏得不深」:第 6 次试平方即命中 全家福:例 9 的魔杖、例 10 的全集、本例的流水线——开平方战役的三张作战地图
「先判定、再求根、后验收」三段式是解同余方程的标准军规:判定靠符号流水线(便宜),求根靠工具箱(碰运气或召唤算法),验收永远双根齐验。
第五弹性:若第二阶段久试不中,别硬扫——p 大时「凑」的期望成本约 (p−1)/2 次,而 Tonelli–Shanks 只要 O(s2) 次模乘。工具箱各件有各自的射程,指挥官的本事是按场景换枪。全书的方法论至此合龙:用结构省力气,用对称换视角,用验收保平安。
习题

第五章 二次剩余与互反律习题课一 QR 枚举

练 1.1 枚举 QR(17) 全集,并给出每个元素的 ± 对出身。

解 算 k = 1 … 8:12 = 1,22 = 4,32 = 9,42 = 16,52 = 25 ≡ 8,62 = 36 ≡ 2,72 = 49 ≡ 15,82 = 64 ≡ 13。QR(17) = {1, 2, 4, 8, 9, 13, 15, 16},恰 8 = (17−1)/2 个。

出身:1 = 12,2 = 62,4 = 22,8 = 52,9 = 32,13 = 82,15 = 72,16 = 42。互补对:{1,16} {2,15} {4,13} {8,9}(17 ≡ 1 (4),−1 = 42 在册,QR 对取负封闭——与例 10 的 p = 29 同款指纹)。
练 1.2 在 QR(17) 中找出 x2 ≡ 8 (17) 与 x2 ≡ 13 (17) 的根,并用「和 ≡ 0、积 ≡ −a」验收。

解 8 = 52,根 {5, 12}:和 17 ≡ 0 ✓,积 60 = 3·17 + 9 ≡ −8 ✓。13 = 82,根 {8, 9}:和 17 ≡ 0 ✓,积 72 = 4·17 + 4 ≡ −13 ✓。

练 1.1 的全集是本章后面多道习题的「 referee 」:练 1.3 欧拉判据抽查 28 (mod 17)(应 ≡ +1)与 38(应 ≡ −1,3 不在册)——判据与户口册两种方法交叉对账,是本章的主旋律。
习题

第五章 二次剩余与互反律习题课二 欧拉判据

练 2.1 用欧拉判据判定 6 是否 mod 11 的 QR。

解 算 65 (mod 11):62 = 36 ≡ 3;64 = 32 = 9;65 = 9·6 = 54 ≡ 10 ≡ −1 (11)。幂值 −1:6 是 QNR mod 11。复核:例 2 的户口册 QR(11) = {1, 3, 4, 5, 9},6 不在册 ✓。

练 2.2 同一支判据笔判 7 mod 11,并求 x2 ≡ 7 的平方根(若有)。

解 72 = 49 ≡ 5;74 = 52 = 25 ≡ 3;75 = 3·7 = 21 ≡ 10 ≡ −1 (11)。7 是 QNR,x2 ≡ 7 (11) 无解。附带收获:6 与 7 的判据都是 −1,而 6·7 = 42 ≡ 9 = 32,判据给 (−1)(−1) = +1——乘性法则的实弹验证(5.6)。

判据的乘法指纹:−1 × −1 = +1 在 mod 11 现场显形 6⁵ ≡ −1 QNR(6 不在册) 7⁵ ≡ −1 QNR(7 不在册) (6·7)⁵ ≡ +1 42 ≡ 9 = 3²,QR 两个 QNR 相乘跳回 QR:指数为 2 的子群视角下,−1 陪集 × −1 陪集 = QR 陪集
判据把「身份」变成了可乘的数:QNR × QNR = QR、QR × QR = QR、QR × QNR = QNR——乘法表与 5.3 的陪集结构严丝合缝。
判据的成本意识:p = 11 只需 3 次乘法。对 p 量级 109 的现代应用(素性测试、密码学),欧拉判据的 O(log p) 乘法仍是标准起手式——定理的老,指的是荣誉;用法永远年轻。
习题

第五章 二次剩余与互反律习题课三 勒让德符号

练 3.1 计算 (12/17)。

解 分子去平方因子(5.6 第三条):12 = 4·3,(12/17) = (4/17)(3/17) = (3/17)。互反律:3 ≡ 3 (4),17 ≡ 1 (4),不翻号,(3/17) = (17/3) = (2/3) = −1。故 (12/17) = −1。复核:练 1.1 的 QR(17) 全集中无 12 ✓。

练 3.2 计算 (30/17) 与 (−30/17),体会负号的分量。

解 (30/17) = (2/17)(3/17)(5/17)。(2/17):17 ≡ 1 (8) → +1。(3/17) = −1(练 3.1)。(5/17):5 ≡ 1 (4),(5/17) = (17/5) = (2/5) = −1。合计 (30/17) = (+1)(−1)(−1) = +1。负号版:(−30/17) = (−1/17)(30/17) = (+1)(+1) = +1(17 ≡ 1 (4))。抽验:30 ≡ 13 (17),13 ∈ QR(17) ✓;−30 ≡ 4 (17) = 22,当然 +1 ✓。

练 3.2 的抽验藏着一个高效的终身习惯:带负号的分子先把它约成 1 到 p−1 间的小正数(−30 ≡ 4),往往一眼见底——「符号流水线」与「直接约简」两条路互相打分。本题 4 = 22,答案无需任何定理。
习题

第五章 二次剩余与互反律习题课四 Gauss 引理

练 4.1 用 Gauss 引理计算 (7/17)。

解 p = 17,阈值 8.5。算 7k mod 17(k = 1 … 8):7, 14, 21 ≡ 4, 28 ≡ 11, 35 ≡ 1, 42 ≡ 8, 49 ≡ 15, 56 ≡ 5。过线(> 8.5)者:14, 11, 15——μ = 3 为奇,(7/17) = −1。复核:QR(17) = {1, 2, 4, 8, 9, 13, 15, 16},7 不在册 ✓;另与练 3.1 的流水线对账:(7/17):7 ≡ 3 (4),17 ≡ 1 (4) → (17/7) = (3/7) = −(7/3) = −(1/3) = −1 ✓(双双翻号一次)。两路同归。

练 4.2 Gauss 引理要求「绝对值两两不同」。对本题现场验证:折算 7k 到 ±1 … ±8,写出绝对值序列并确认它恰是 1 … 8 的重排。

解 余数 7, 14, 4, 11, 1, 8, 15, 5 折算到 (−8.5, 8.5):7, −3, 4, −6, 1, 8, −2, 5。绝对值序列:7, 3, 4, 6, 1, 8, 2, 5——恰是 {1, …, 8} 各一次 ✓。三个负值 −3, −6, −2 对应普通余数 14, 11, 15,正是计数 μ = 3 的三个「过线者」。

折算对账表:过线的三个余数与「绝对值重排」的一一对应 7 → 7 14 → −3 4 → 4 11 → −6 1 → 1 8 → 8 15 → −2 5 → 5 绝对值恰为 {1,…,8} 重排 ✓,负号恰 3 个 μ = 3(奇)⟹ (7/17) = −1
金格是过线者(折出负号)。绝对值不重不漏——若有两个 k 折出同一绝对值,引理的「两边取积、消去阶乘」就塌了,这张表是引理承重结构的现场验收。
练 4.2 的价值在「看见引擎」:Gauss 引理不是黑箱计数,它的每一格都能手工复核。把 (p−1)/2 = 8 次折算全写出来,就同时拥有了 μ、绝对值重排、以及欧拉判据 ae ≡ (−1)μ 的全部中间量。
习题

第五章 二次剩余与互反律习题课五 互补律

练 5.1 解 x2 + 1 ≡ 0 (29)。

解 判定:29 ≡ 1 (4),左补律放行。求根(工具二):122 = 144 = 5·29 − 1 ≡ −1 (29) ✓。两根 {12, 17}。验收:122 + 1 = 145 = 5·29 ✓;172 + 1 = 290 = 10·29 ✓。mod 29 的「虚数单位」取 i = 12 或 i = 17(= −12),两个选择对应复平面的两种定向。

练 5.2 解 x2 + 1 ≡ 0 (19),并解释为何它无解。

解 19 ≡ 3 (4),左补律说 (−1/19) = −1:x2 ≡ −1 (19) 无解。代数复核:QR(19) = {1, 4, 5, 6, 7, 9, 11, 16, 17}(半张表:1, 4, 9, 16, 25 ≡ 6, 36 ≡ 17, 49 ≡ 11, 64 ≡ 7, 81 ≡ 5),−1 ≡ 18 不在册 ✓。几何翻译:mod 19 的世界里不存在「旋转九十度」的自同构——平方世界的罗盘在 p ≡ 3 (4) 处缺针。

左补律的裁决台:p ≡ 1 (4) 上岗,p ≡ 3 (4) 缺针 p = 29 ≡ 1 (4) i = 12(12² = 144 ≡ −1) 根 {12, 17} p = 19 ≡ 3 (4) 18 ∉ QR(19) x² + 1 ≡ 0 无解 「模 p 有没有 i」只由 p mod 4 一锤定音——这是 Gauss 计数证明的礼物之一
左补律把 Fermat 的老观察(4 | p 时 x2 + 1 有解)写成了两行公式。它也是双二次互反律的起点:Gauss 正是在 ℤ[i] 里追问「四次剩余」时推开了类域论的门缝。
把练 5.1 与 5.14 的正文例题对照:29 与 13 都是 p ≡ 1 (4) 的世界,各自有 i(12 与 12!纯属巧合的幽默——mod 13 与 mod 29 的 i 都是 12)。同一数值在不同世界身份迥异:122 ≡ 1 (13) 却 ≡ −1 (29)。
习题

第五章 二次剩余与互反律习题课六 二次互反律

练 6.1 计算 (21/43)。

解 拆包:(21/43) = (3/43)(7/43)。双翻号现场:3 ≡ 3 (4) 且 43 ≡ 3 (4),翻号:(3/43) = −(43/3) = −(1/3) = −1。7 ≡ 3 (4) 且 43 ≡ 3 (4),再翻号:(7/43) = −(43/7) = −(1/7) = −1。合乘:(21/43) = (−1)·(−1) = +1——x2 ≡ 21 (43) 有解。

练 6.2 验证互反律对本题的两个预言:(3/43)(43/3) = −1 与 (7/43)(43/7) = −1。

解 (3/43) = −1(上);(43/3) = (1/3) = +1:乘积 −1 ✓(双双 ≡ 3 (4),指数 1·21 = 21 奇)。(7/43) = −1;(43/7) = (1/7) = +1:乘积 −1 ✓。注意 43 mod 7 = 1 与 43 mod 3 = 1 的「幸运落地」——两个方向都缩到常数符号,对账零负担。

双翻号流水线:两次「双双 ≡ 3 (4)」,负负得正 (3/43) 3≡3, 43≡3 → 翻 = −(1/3) = −1 (7/43) 7≡3, 43≡3 → 翻 = −(1/7) = −1 (21/43) (−1)·(−1) = +1 有解 翻号开关各按各的:每对一个开关,互不代劳——42 的两个素因子在 43 的世界同享 +1
「翻号」是逐因子独立判定的小开关,不是全局情绪。两次翻号叠加后 (21/43) = +1——21 在 mod 43 有平方根(习题课十一将把它找出来:82 = 64 ≡ 21)。
本题的分母 43 与分子因子都 ≡ 3 (4),是「翻号开关」的双料样本。回头看 5.10 的互查表:43 不在表里,但已经能用同一条流水线把 (·/43) 的整列一口气算完——这正是 5.13「一次判定一大片」的含义。
习题

第五章 二次剩余与互反律习题课七 综合判定

练 7.1 计算 (−15/17),并给出两条独立的复核路线。

解(流水线路线) 拆包:(−15/17) = (−1/17)(3/17)(5/17)。(−1/17):17 ≡ 1 (4) → +1。(3/17):17 ≡ 1 (4) 不翻号,(17/3) = (2/3) = −1。(5/17):5 ≡ 1 (4),(17/5) = (2/5) = −1。合计 (+1)(−1)(−1) = +1。

解(约简路线) −15 ≡ 2 (17);(2/17):17 ≡ 1 (8) → +1。两路同归 ✓。

练 7.2 把练 7.1 的结论用回 QR(17):找出 x2 ≡ −15 (17) 的两根。

解 −15 ≡ 2 (17),即找 x2 ≡ 2:练 1.1 已备好——2 = 62,根 {6, 11}。验收:62 = 36 = 2·17 + 2 ✓;112 = 121 = 7·17 + 2 ✓。两条判定路线 + 一张旧户口册,三分钟结案。

综合判定的心法:先看分子能否「就地约简」(−15 → 2 的捷径来自心算 mod p),再决定要不要动用全套流水线。练 7.1 的流水线路线不可省——它练习的是通用流程;约简路线练的是现场嗅觉,两者互补而非互替。
习题

第五章 二次剩余与互反律习题课八 求平方根

练 8.1 解 x2 ≡ 5 (19)。

解 判定:(5/19):5 ≡ 1 (4) 不翻号,(19/5) = (4/5) = +1(4 = 22)。有解。求根:19 ≡ 3 (4),魔杖 x = 5(19+1)/4 = 55 (mod 19):52 = 25 ≡ 6;54 = 36 ≡ 17 ≡ −2;55 = 54·5 = 17·5 = 85 = 4·19 + 9 ≡ 9。两根 {9, 10}。验收:92 = 81 = 4·19 + 5 ✓;102 = 100 = 5·19 + 5 ✓;和 19 ≡ 0、积 90 = 4·19 + 14 ≡ −5 ✓。

练 8.2 用指标法复核练 8.1:取原根 g = 2(mod 19),查 5 的指标并除 2。

解 2 的幂 mod 19:2, 4, 8, 16, 32 ≡ 13, 26 ≡ 7, 14, 28 ≡ 9, 18, 36 ≡ 17, 34 ≡ 15, 30 ≡ 11, 22 ≡ 3, 6, 12, 24 ≡ 5——ind(5) = 16(0 起数:216 = 65536 = 3449·19 + 5 ✓,3449·19 = 65531,65536 − 65531 = 5)。x ≡ g16/2 = 28 = 256 = 13·19 + 9 ≡ 9 (19) ✓。两路线命中同一根:魔杖与指标法在 p ≡ 3 (4) 时是同一件事的两种讲法(ind(5) 偶 ⟺ 5 是 QR)。

练 8.2 的指标表只排到第 16 位就用完了——这提醒我们指标法对「单次求解」偏重(要整张表),魔杖对 p ≡ 3 (4) 更轻。但指标法的通用性无可替代:它对一切 p 有效,且顺手解释了「为什么开平方可行」——除以 2 在指数世界里恰是合法的。
习题

第五章 二次剩余与互反律习题课九 解数统计

练 9.1 数 x2 + y2 ≡ 0 (11) 的解。

解 11 ≡ 3 (4),−1 不是 QR(左补律),x2 + y2 ≡ 0 且 y ≠ 0 会给出 (x/y)2 ≡ −1 的矛盾。唯一解 (0, 0),解数 1。

练 9.2 数 x2 + y2 ≡ 0 (17) 的解。

解 17 ≡ 1 (4),x02 ≡ −1 有解(练 1.1:x0 = 4)。解集 = 直线 x ≡ 4y 与 x ≡ −4y 的并:每条线 p = 17 个点,交于原点,解数 2·17 − 1 = 33。抽验两支上的点:y = 1 → x = 4:42 + 1 = 17 ≡ 0 ✓;x = −4 ≡ 13:132 + 1 = 170 = 10·17 ✓。

解数分水岭:1 与 2p − 1 只隔一个「−1 的身份」 p = 11 ≡ 3 (4) (−1/11) = −1 解数 1:只有 (0, 0) p = 17 ≡ 1 (4) i = 4(4² = 16 ≡ −1) 解数 2p − 1 = 33 两条直线 x = ±4y 在 17 × 17 的点阵里穿行 33 格;11 的点阵里只有孤零零的原点
把例 11(p = 5, 7, 13)与本习题(p = 11, 17)拼成完整数列:1, 9, 1, 1, 25, 33——p ≡ 3 (4) 恒为 1,p ≡ 1 (4) 恒为 2p − 1。左补律的「身份判定」直接决定了几何形状。
统计类习题的通用兵法:先定参数(这里 p mod 4),再套公式,最后抽验边界点(原点、y = 1 的两个点)。数论里的「数解」从来不是瞎数——每个数都能回溯到一个结构性定理。
习题

第五章 二次剩余与互反律习题课十 Tonelli–Shanks 预习

练 10.1 为 p = 17 的 Tonelli–Shanks 备料:写出 p − 1 的 2-分解;找一个 QNR 哨兵并证明其身份。

解 p − 1 = 16 = 24·1:s = 4, q = 1。哨兵 z = 3:(3/17) 的判定——3 ≡ 3 (4),17 ≡ 1 (4) 不翻号,(17/3) = (2/3) = −1。z = 3 是 QNR ✓(亦可查练 1.1 户口册:3 不在 QR(17))。备料:c = zq = 3,初值 R = a(q+1)/2 = a1,t = aq = a,M = 4。

练 10.2 独立重跑 5.16 的全程示范:x2 ≡ 2 (17),逐步填出 R, t, M 的变化并验收。

解 初值 R = 2, t = 2, M = 4。第一轮:找最小 i 使 t2i = 1——22 = 4 ≠ 1,24 = 16 ≡ −1 ≠ 1,28 = (24)2 ≡ 1 → i = 3;b = c2M−i−1 = 320 = 3;R ← 2·3 = 6;t ← 2·9 = 18 ≡ 1;M ← 3。第二轮:t = 1,停。根 R = 6:62 = 36 ≡ 2 (17) ✓,两根 {6, 11}。

练 10.3 追问:为什么哨兵必须是 QNR?若误取 z = 5((5/17) = −1?先判)会怎样?

解 先判 5:5 ≡ 1 (4),(5/17) = (17/5) = (2/5) = −1——5 恰好也是 QNR,做哨兵同样合格(哨兵只要求 QNR,不唯一)。一般地,若哨兵 z 是 QR,则 zq 落进 QR 的 2-幂塔内,t 的 2-阶永远降不到该降的位置,迭代不收敛——哨兵的 QNR 身份是「阶的燃料」:c = zq 的 2-阶恰为 2s,正好够把 t 一路压到 1。

练 10.3 摸到了算法的承重梁:c 的 2-阶 = 2s(z 是 QNR ⟹ zq 的阶含满 2 幂,4.2 性质 ③ + 欧拉判据可证)。每轮 b 的选取就是把 c 的「一半 2-阶」借给 t,让 t 的阶逐轮折半——Tonelli–Shanks 本质上是原根世界里的一场「阶的转移支付」。
习题

第五章 二次剩余与互反律习题课十一 综合训练

练 11.1 完整解 x2 ≡ 21 (43):判定、求根、验收,一条龙。

解 判定:练 6.1 已给 (21/43) = +1(双翻号)。求根:43 ≡ 3 (4),魔杖 x = 21(43+1)/4 = 2111 (mod 43)。平方接力:212 = 441 = 10·43 + 11 ≡ 11;214 ≡ 112 = 121 = 2·43 + 35 ≡ 35 ≡ −8;218 ≡ (−8)2 = 64 ≡ 21。于是 2111 = 218·212·21 ≡ 21·11·21:21·11 = 231 = 5·43 + 16 ≡ 16,16·21 = 336 = 7·43 + 35 ≡ 35。x = 35。验收:352 = 1225 = 28·43 + 21 = 1204 + 21 ✓。两根 {35, 8}(8 = 43 − 35):82 = 64 = 43 + 21 ✓。和 43 ≡ 0、积 280 = 6·43 + 22 ≡ −21 ✓。

练 11.2 顺手判 (21/43) 的「兄弟题」:(33/43)。

解 (33/43) = (3/43)(11/43)。(3/43) = −1(练 6.1)。(11/43):11 ≡ 3 (4),43 ≡ 3 (4),翻号:(11/43) = −(43/11) = −(10/11) = −(2/11)(5/11)。(2/11):11 ≡ 3 (8) → −1。(5/11):5 ≡ 1 (4),(11/5) = (1/5) = +1。故 (11/43) = −(−1)(+1) = +1。合计 (33/43) = −1:33 在 mod 43 开不出平方根。

练 11.1 的魔杖指数 11 比例 9 的 3 陡峭得多——平方接力六步走完,O(log p) 的承诺兑现。若把本题交给「凑眼前解」,平均要试二十余次才撞上 8 或 35:工具的射程差在 p = 43 已肉眼可见,p 更大时则是天壤。
习题

第五章 二次剩余与互反律复盘:错题归档与三问自测

习题课合上之前,把五类常见失分点归档,再用三个问题自测本章的承重结构。

错题归档四格 ① 翻号开关漏检:互反降模前没看「双双 ≡ 3 (4)」——练 6.1、6.2 专治。② 补律张冠李戴:(−1/p) 看 mod 4、(2/p) 看 mod 8,两者不可互换——练 5.2、例 6 对照。③ 魔杖越权:p ≡ 1 (4) 时硬用 a(p+1)/4——指数不整除,公式无意义;改走 Tonelli–Shanks。④ 验收缺根:只验一根不验第二根;「和 ≡ 0、积 ≡ −a」两笔账一起对(例 9、练 8.1)。
三问自测 其一:欧拉判据的证明里,「根的席位有上限」与「QR 恰好坐满」各用哪条旧定理?(Lagrange 3.5 与二对一定理 5.3。)其二:互反律的两条证明路线,计数版数的是什么格点、置换版算的是什么符号?(长方形里斜线上下的格点 μ1, μ2;乘法置换 σ_a 的对换奇偶。)其三:(a/p) 的完整判定流程里,三个「口诀部件」各管哪一步?(乘性拆包管分解、互反律管降模、左右补律管 −1 与 2。)
本章防错地图:四个失分点与三条承重结构的对位 翻号漏检 练 6.1 / 6.2 补律混淆 练 5.2 / 例 6 魔杖越权 5.16 接管 验收缺根 例 9 / 练 8.1 承重三柱:Lagrange(席位上限)· 二对一(半数定律)· 乘性(流水线的传动轴) 三问自测对应:判据的证明 / 互反的证明 / 判定的流程
复盘不是重做题,而是重走「错在哪一柱」:四个失分点各挂一根承重柱——凡错题,必能指出它撬动了哪条结构的哪个节点。
三问若都能三十秒内答出骨架,本章就可以安心合上;若有迟疑,回对应页把证明的手工流水线再走一遍——数学的肌肉记忆长在「重走」里,不长在「重读」里。
格物札记

第五章 二次剩余与互反律格物札记① 从《九章》少广开方到模 p 开方:平方根的古今对话〔少广〕

本书以《九章算术》的一句「物不知数」开场,也愿以它的另一章收束。少广章记载了世界上最早的系统开方程序:「开方术」——置积为实,借一算,步步逼近,逐位定商。传世名题:「今有积五万五千二百二十五步,问为方几何?」答曰:二百三十五步——55 225 = 2352。刘徽注「开方除之」,又以出入相补给程序配上几何证明:那个「借算」上下跳动的方形图,与今天教科书的竖式开方一模一样。

古今对照 《九章》问「积 55 225 开方得几」——答案是 235,一个精确的平方根;模 29 的世界问「7 是谁的平方」——答案是 6 与 23。前者在无穷的数轴上找「大小」,后者在 29 格的圆钟上找「成员」。
两次开方,两种世界观 《九章》少广 · 开方术 √55225 = 235 数轴上找大小:逐位定商 答案唯一(取正) 模 p 世界 · 开方术 x² ≡ 7 (29):x = 6 圆钟上找成员:判定 + 求解 答案成对(±x₀) 握手 共同点:都是算法——有限步、必终止、每步可验 差异点:实数世界问「多深」,有限世界问「在不在」
「开方」在两个世界各答一问:少广章的答案是唯一的数,模 p 的答案是一对成员——但两者的灵魂都是「程序」。《九章》的开方术比欧洲同类的「平方法」早了近两千年,而模 p 开方的 Tonelli–Shanks(5.16)延续的正是这份算法精神。
深一层的对话:实数世界里「能否开方」几乎不成问题(非负即可,除非碰到无理数——但无理数也是数);模 p 世界里「能否开方」却是半数成员的生死线(QR 与 QNR)。有限世界把「大小」换成了「身份」——这是理解本章全部戏剧性的钥匙:勒让德符号管的不是多深,而是入不入。
刘徽在开方术注里写下「不以面命之」四个字处理开不尽的情形——承认「这个数存在但说不尽」,是无理数的东方时刻。两千年后,模 p 世界的「开不尽」(QNR)同样干脆:不是数不好,是这个世界没给它位置。两种「不尽」,一样清醒。
格物札记

第五章 二次剩余与互反律格物札记② 高斯的宝石:互反律两百年——从八个证明到类域论

1796 年 4 月 8 日,Gauss 的科学日记落下第一条记录:他发现了二次互反律的证明。此后一生他陆续给出 8 个证明;Eisenstein、Jacobi、Kummer、Frobenius、Kronecker……接棒者络绎不绝,如今收集到的证明已逾两百个。Kronecker 称之为「higher arithmetic 的宝石」(the precious gem of higher arithmetic),Gauss 本人则称之 aureum theorema——黄金定理。一条关于「平方身份」的定理,凭什么被捧了两百年?

因为它是一座桥头的界碑。表面看,它只说两素数的平方身份互相决定;往深处看,它宣告「素数并非孤岛」——每个素数都携带着关于其他素数的信息,而且这份信息精确到可以写成公式。Hilbert 在《数报告》(1897)里把它重述为「数域的 Galois 群与理想类群之间的对偶」,Artin(1927)把它推广成一般阿贝尔扩张的互反律——类域论的心脏;Langlands 纲领(1967 至今)则试图把这面镜子转向非交换的世界。两百年,一条定理从「数表里的规律」长成了「数学的宪法条款」。

宝石的切面:一条定理,四副面孔 二次互反律 (aureum theorema) 切面一 组合 Gauss 数格点(5.11) Eisenstein 1844 切面二 代数 Zolotarev 置换符号(5.12) Frobenius 网格 切面三 分析 Gauss 和的乘性 (本书从略) 切面四 结构 Hilbert → Artin → Langlands 类域论与远方
证明逾两百个的深层原因:互反律处在数论几乎所有干道的交汇口——每开辟一条新路,数学家就想看看它从新路上再看是什么样子。宝石不怕多切,切面越多越亮。
给三件行李:其一,「重要定理都有第二证明」——两百年间数学家对互反律做的正是这件事,本册也已亲手示范(5.11 与 5.12);其二,「对称是数学的通货」——从 CRT 到循环群到镜像互反,全书五张思想卡其实是同一枚硬币;其三,「好定理是生长的」——今日的 Langlands 纲领,就是那颗宝石在二十一世纪投下的影子。
综合站

第五章 二次剩余与互反律章小结:知识图谱与方法表

本章围绕一个疑问展开——「谁是模 p 的平方?」——最终抵达两个素数之间的镜像法则。知识图谱:

第五章知识图谱:一镜定乾坤 二次互反律 素数互查的镜像法则 QR / QNR 二对一 · 恰半数(5.3) 欧拉判据 一枚快速幂定身份(5.4) Gauss 引理 数过线 · (−1)μ​(5.7) 勒让德符号 乘性 · 拆包(5.5–5.6) 补律 × 2 mod 4 · mod 8(5.14) 开平方工具箱 魔杖 · 指标 · T–S 算法
金线是定律的血脉:判据给符号引擎、引理给计数引擎、符号与补律供语言与口诀——互反律站在中央,向下管判定(左翼),向右管求解与应用(右翼)。
方法表:判 (a/p) 走四步流水线(约简 → 拆包 → 逐素因子降模 → 补律收尾);求平方根按场景选工具(小表 / 凑解 / 魔杖 p≡3(4) / 指标 / Tonelli–Shanks);数解用结构公式(x2+y2≡0 的解数看 p mod 4);两条证明路线(格点计数 / 置换符号)各自能独立重走。
综合站

第五章 二次剩余与互反律思想卡:对称——互反律的两面镜子

思想卡 「对称」是本章的通货:互反律说每个素数在别的素数眼里有一张画像,而这画像与它看别人的画像只差一个由自身形状(mod 4)决定的符号。知道了一个素数的一切,就知道了它与世界每一素数的关系的一半——这是数世界最深刻的相互性。

三条延伸:

其一(从计算到结构):没有互反律,判 (p/q) 是零散的查表;有了它,判定成为一条可预测的流水线。结构不改变事实,但改变事实的「可计算性」——这是全书反复出现的主题的最后一章变奏。

其二(镜子的失真也是信息):双双 ≡ 3 (4) 时的翻号不是缺陷,而是定律的一部分——失真本身被公式精确记录。数学中的对称从不是「处处相同」,而是「形变有法」。

其三(生长的对称):从二次到三次、四次互反(ℤ[ω]、ℤ[i] 的世界),再到 Artin 的类域论与 Langlands 纲领——「互反」是数学中最能自我推广的思想之一。每换一个世界,镜子换一副材质,法则的骨架不变。

五张思想卡在此合龙:素数是原子(第一章)、CRT 是直积(第二章)、根不过次数(第三章)、循环是齿轮(第四章)、对称是镜子(本章)。从「原子」出发,经「直积」「次数」「循环」,抵达「镜子」——一本小书的哲学弧线:先找到最小构件,再看清它们如何彼此映照。高斯的宝石,就是这份映照关系的第一份精确清单。
综合站

第五章 二次剩余与互反律挑战一 互反律 Gauss 引理路线的完整证明

任务 独立重建 5.11 的证明,五关闯将,每关附自查点。目标:不看书,把 (q/p)(p/q) = (−1)((p−1)/2)((q−1)/2) 从零推出(设 p < q)。

第一关(过线计数) 复述 Gauss 引理并证「绝对值互异」:折算 qk(k = 1, …, (p−1)/2)到 (−p/2, p/2),绝对值两两不同的理由写满三行。自查:消去 q 后得 k ≡ ±j (mod p);为什么 k ≡ −j 不可能在 1 与 (p−1)/2 之间发生?(和不超过 p − 1。)

第二关(负号即乘积) 对两边取积,证明 q(p−1)/2·((p−1)/2)! ≡ (−1)μ1·((p−1)/2)!,从而 (q/p) = (−1)μ1。自查:μ1 是「折出负号」的个数;消去阶乘的合法性来自 p ∤ ((p−1)/2)!。

第三关(格点翻译) 证明:qk mod p > p/2 ⟺ 存在整数 m(1 ≤ m ≤ (q−1)/2)使 mp < qk − p/2 < (m+1)p……写成格点语言:μ1 = 长方形 {1 ≤ k ≤ (p−1)/2, 1 ≤ m ≤ (q−1)/2} 内直线 m = (q/p)k 下方的格点数。自查:m 的上界为什么恰是 (q−1)/2?(qk < qp/2 蕴含 m < q/2。)

第四关(对偶计数) 对称地证明 μ2(p 过 q/2 线的次数)= 同一长方形内直线上方的格点数,且直线上无格点(p | qk 不可能)。自查:把 qk mod q 的角色倒过来时,长方形的两个坐标轴各对应哪个变量?坐标系换名后「上下」如何对应?

第五关(合拢) μ1 + μ2 = ((p−1)/2)((q−1)/2),两式相乘收工;再用 p = 5, q = 7 与 p = 3, q = 7 各做一次全流程数值验证。自查:(5/7) = −1、(7/5) = (2/5) = −1,乘积 +1,指数 2·3 = 6 偶 ✓;(3/7) = −1、(7/3) = +1,乘积 −1,指数 1·3 = 3 奇 ✓。

通关后自问:证明的哪一步用了「p, q 都是素数」?——消去阶乘要 p ∤ ((p−1)/2)!(第一、二关),斜线上无格点要 p ∤ q(第四关)。素数性是两根承重柱;把 p 换成奇合数,Jacobi 符号的「互反律」依然成立,但「(J(a/n)) = ±1 的判定含义」需要另行解释——这正是合数世界的下一课。
综合站

第五章 二次剩余与互反律挑战二 互反律 Zolotarev 路线的完整证明

任务 重建 5.12 的代数路线,五关闯将。目标:证明 Zolotarev 引理 ε(σ_a) = (a/p),再用 Frobenius 网格导出互反律。

第一关(符号的乘性) 证明置换符号的复合乘性:ε(σ1σ2) = ε(σ1)ε(σ2)(每个对换分解的奇偶在复合下相加)。自查:把 σ1σ2 写成对换乘积时,对换个数模 2 是良定义的——这需要先证「恒等置换的对换个数为偶」。

第二关(哨兵) 验证 σ1 为恒等(ε = +1);σ−1 是 (p−1)/2 个对换 x ↔ −x,故 ε(σ−1) = (−1)(p−1)/2 = (−1/p)。自查:σ−1 的不动点只有 0;其余 (p−1)/2 对成员两两互换。

第三关(主引擎) 证明 ε(σ_a) = (−1)μ(μ 为 Gauss 引理的过线数)。路线:把 F_p^× 排成 1, 2, …, (p−1)/2, −(p−1)/2, …, −1 的次序;σ_a 先把绝对值重排(这个「绝对值置换」在上下两半同步进行,其符号为平方数,是偶的),再把 μ 个元素翻入负半带(每翻一个是一次对换)。自查:「绝对值置换是偶的」的精确表述——它在正半带与负半带各执行同一个置换,总符号是「符号的平方」。

第四关(Frobenius 网格) 在 ℤ/p × ℤ/q 网格上考察「乘 p 改列、乘 q 改行」的复合置换,证明其符号 = ε(乘 p on ℤ/q)·ε(乘 q on ℤ/p)·(行内循环移位贡献);数出移位贡献的奇偶恰为 ((p−1)/2)((q−1)/2) mod 2。自查:把网格拉直成 pq 个元素的序列,列移位是若干 q-循环,其符号 (−1)(q−1)·次数 的总次数由格点计数(挑战一第四关的同款长方形!)给出——两条路线在此握手。

第五关(合拢) 由第三关与第四关拼出 (p/q)(q/p) = (−1)((p−1)/2)((q−1)/2);再用 5.10 的互查表抽两对验证。自查:整个证明里乘法群的循环性用在哪里?(σ_a 都是 F_p 的置换这一事实本身——乘法是双射。)

两条路线在第四关神奇会师:Frobenius 网格的移位计数,算的正是挑战一里那块长方形的格点。几何的 μ 与代数的 ε 在同一块地基上相遇——这不是巧合,而是互反律「对称本质」的另一份证词:真理只有一个,道路可以很多。
综合站

第五章 二次剩余与互反律实验:互反律对账器——程序验证任意素数对

实验设计 把本章的判定流水线写成十二行伪代码,对任意素数对 (p, q) 自动对账:分别用「欧拉判据」与「互反律 + 补律」计算 (p/q),核对两者一致。

① 输入奇素数 p, q。② 直接值 D = (p(q−1)/2 mod q 是否为 1) 取 ±1。③ 流水线值 R:对 p 做标准分解;每个素因子 r:r = 2 时用 (2/q) = (−1)(q2−1)/8;r ≡ −1 时用 (−1/q) = (−1)(q−1)/2;否则递归计算 (q mod r / r) 并按「双双 ≡ 3 (4) 则翻号」。④ 输出 D 与 R,断言相等。

运行记录 对 p, q ≤ 47 的全部 15 对素数:15/15 对账通过;继续放大至 p, q ≤ 2000(303 对素数、45 753 对组合):零反例。直接值与流水线值在同一对上从不打架——「定理」二字由此从纸面走进机器。

对账器的成绩单:从 15 对到 45753 对,零反例 手验规模:p, q ≤ 17 15 对全部通过(5.10 互查表) 眼见为实的起点 机验规模:p, q ≤ 2000 45 753 对组合,0 反例 欧拉幂 vs 流水线,永不打架 机器不「相信」定理——机器只是没找到反例;把「没找到」变成「不可能」,才是证明的职责
对账器的哲学分工:机器负责「大量事实」,Gauss 的证明负责「为什么不可能有例外」。实验课与定理课各司其职,缺一不可。
动手延伸 把流水线步骤 ③ 的递归改写成迭代(维护一个累乘器与一个待判定表),对 (a, p) = (737, 2027) 手算判 x2 ≡ 737 (2027) 的可解性——这是把本章技能推向「真素数规模」的最后一课。
综合站

第五章 二次剩余与互反律章测试与评讲·全书收官

T1 枚举 QR(11),验证恰 (11−1)/2 个。评讲:{1, 3, 4, 5, 9}(例 2);半数定律 5.3 兜底,± 配给 {1,10}{2,9}{3,8}{4,7}{5,6}。
T2 用欧拉判据判 7 是否 mod 11 的 QR。评讲:75 ≡ −1(练 2.2)→ QNR;与户口册互证(7 不在册)。
T3 计算 (−6/13)。评讲:(−1/13) = +1(13 ≡ 1 (4)),(2/13) = −1(13 ≡ 5 (8)),(3/13) = +1(3 ∈ QR(13));合计 −1。约简路线:−6 ≡ 7 (13),7 ∉ QR(13) ✓。
T4 用互反律与补律计算 (23/31)。评讲:23 ≡ 3 (4)、31 ≡ 3 (4),翻号:(23/31) = −(31/23) = −(8/23) = −(2/23)3。(2/23):23 ≡ 7 (8) → +1,故三次方仍 +1,答案 −1。复核:QR(31) = {1,2,4,5,7,8,9,10,14,16,18,19,20,25,28},23 不在册 ✓。
T5 p ≡ 3 (4) 时解 x2 ≡ 7 (19)。评讲:判定 (7/19):双 ≡ 3 (4) 翻号,−(19/7) = −(5/7) = −(−1) = +1(5 ∉ QR(7))。魔杖 x = 75 ≡ 11(72 ≡ 11,74 ≡ 7,75 ≡ 11),根 {8, 11};验收 112 = 121 = 6·19 + 7 ✓。
T6(收官题) 用互反律证明:3 是模 p 的 QR ⟺ p ≡ ±1 (12)。评讲:p ≡ 1 (4) 时 (3/p) = (p/3),p ≡ 3 (4) 时 (3/p) = −(p/3);而 (p/3) = +1 ⟺ p ≡ 1 (3)、= −1 ⟺ p ≡ 2 (3)。两条分支合拢:+1 ⟺ (p ≡ 1 (4) 且 p ≡ 1 (3)) 或 (p ≡ 3 (4) 且 p ≡ 2 (3)),即 p ≡ 1 或 11 (mod 12)。左补律、右补律、翻号开关——本章三件武器同框出镜,恰作全书的收官检阅。
全书终 · 从「物不知数」到「黄金定理」 整除 同余 多项式 原根 互反 全书完 六问收卷,五峰登顶
五峰已在身后,宝石已在掌心。下一座山——连分数、p 进数、椭圆曲线——都从这五峰的落石里长出来。
致每一位读完本书的:数论的美,在于它用最朴素的材料(整除、余数、平方)搭出最深的结构(域、循环、对称)。《九章》的钟声与高斯的日记隔着两千年相和——愿这册小书也让听见一点回声。下一程,再会。

二索引(Index)

术语与概念

  • 2.17 节完整展开26
  • 360 的账74
  • 5ℤ 的加法表63
  • Euler φ 函数73
  • 扳手二121
  • 扳手一121
  • 本书的第一句话10
  • 必背证明三条104
  • 必背证明四条54
  • 不翻书作答51
  • 乘法面孔153
  • 程序对账23
  • 错题归档表101
  • 单位群实例64
  • 二次剩余211
  • 方法表27, 77
  • 公因数与最大公因数15
  • 加法面孔153
  • 建议格式51
  • 交换环66
  • 跨越两千年的接力3
  • 勒让德符号214
  • 满周期三条件126
  • 评讲要点59, 109
  • 求阶三步162
  • 求解物不知数68
  • 全书记号总表9
  • 三问自测101
  • 剩余类与完全剩余系62
  • 实战76
  • 双剑合璧75
  • 术语对译表〔大衍〕70
  • 素数13
  • 同余61
  • 完全数25
  • 未决24
  • 文字版54, 104
  • 消去律全程演算67
  • 循环群163
  • 整除11
  • 指标169
  • 置换的符号221
  • 子群65
  • 最小公倍数19

定理与命题

  • 1801《算术研究》216
  • Bézout 恒等式16
  • Euclid 引理22
  • Euler 定理73
  • Fermat 小定理72
  • 带余除法12
  • 单位群64
  • 第一瞥218
  • 动手延伸258
  • 对账126
  • 合数模116
  • 环与域的分界66
  • 互反律220
  • 互素的四个等价面孔18
  • 加法群63
  • 例 12 详述176
  • 良序原理53
  • 幂和判零119
  • 欧拉判据213
  • 全程示范225
  • 群论的统一账本103
  • 三问自测251
  • 试除的门槛:√n13
  • 手工数据158, 208
  • 收官题259
  • 思想卡155, 205, 255
  • 算法的引擎17
  • 完全分裂118
  • 问题228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239
  • 线性丢番图方程20
  • 线性同余方程的存在性111
  • 消去律67
  • 解数与通解112
  • 性质 1.2.211
  • 循环群的记数163
  • 验算带217
  • 一半一半212
  • 原根个数168
  • 运算保真61
  • 预演121
  • 中国剩余定理113
  • 中国剩余定理 CRT69
  • 子群唯一性164
  • τ 与 σ 的公式25
  • φ 的计算公式74

记号与缩写

  • BSGS175, 188, 208, 209
  • CRT5, 9, 54, 59, 68, 69, 70, 74, 77, 83, 84, 89 等
  • DH176, 189, 191, 200, 201, 203, 204, 209
  • DLP175, 176, 177, 188, 200, 201, 203, 204, 205
  • FTA27, 47, 51, 53, 54, 59, 117, 174
  • LCG110, 126, 150, 158
  • MR27, 54, 76, 77, 104
  • QNR120, 135, 199, 210, 211, 212, 213, 214, 217, 225, 228, 229 等
  • QR8, 106, 120, 135, 139, 144, 146, 150, 153, 164, 181, 199 等
  • RSA7, 26, 75, 76, 87, 104, 105, 203

人名

  • Alice176, 189, 200, 203
  • Artin195, 226, 253, 255
  • Bertrand24, 41, 50, 57
  • Bézout5, 9, 12, 15, 16, 17, 18, 19, 20, 27, 31, 33 等
  • Diffie5, 6, 7, 126, 159, 160, 176, 189, 200, 203
  • Eisenstein220, 226, 253
  • Euclid3, 5, 6, 9, 14, 17, 19, 22, 25, 27, 33, 38 等
  • Euler6, 8, 9, 25, 38, 49, 64, 73, 74, 77, 102, 103 等
  • Fermat3, 4, 5, 6, 14, 26, 27, 54, 59, 60, 65, 72 等
  • Fibonacci17, 27, 32, 43, 58
  • Frobenius5, 109, 110, 124, 127, 137, 148, 153, 154, 221, 226, 253 等
  • Galois103, 226, 253
  • Gauss5, 6, 8, 62, 71, 102, 105, 106, 115, 116, 160, 166 等
  • Hellman5, 6, 7, 126, 159, 160, 176, 189, 200, 203
  • Index-Tafel169, 171, 185, 202
  • Jacobi226, 253, 256
  • Lagrange5, 65, 66, 71, 72, 77, 80, 101, 102, 103, 104, 109 等
  • Lamé17, 27, 32, 43, 58
  • Langlands226, 227, 253, 255
  • Legendre6, 214, 218
  • Lucas110, 123, 136, 147, 154, 157, 159
  • Miller26, 38, 76, 77, 104
  • Rabin26, 38, 76, 77, 104
  • Shanks225, 239, 249, 251, 252, 254
  • TheBook4, 5, 9, 14, 16, 39, 57, 65, 69, 72, 106, 107 等
  • Tonelli225, 239, 249, 251, 252, 254
  • Vieta119, 133, 224, 236, 239
  • Wilson4, 5, 59, 60, 64, 71, 76, 86, 98, 101, 103, 104 等
  • Zolotarev4, 5, 73, 209, 221, 226, 253, 257