本节摘要:群、环、域是按"保留多少运算律"划分的三级代数结构:群只留一个可结合运算加单位元加逆元;环加法成群、乘法半群、分配律牵线;域要求乘法(除零外)也成群。本节以模 n 整数为实验田,看清"模 6 不能消去、模 7 是域"的结构原因,并走访对称群、循环群等常见族群,理解为什么抽象结构比具体数字更有复用价值。
做整数加法时,你用到了哪些性质?交换、结合、零的存在、每个数有相反数——仅此四条,连"数"是什么都不重要。把对象换成平面上的旋转、魔方的转动、密码学中的比特串,这四条照样够用。群就是把这套最小公约数提炼出来的结构:一个集合、一个二元运算、结合律、单位元、可逆性。再往上加要求得到环与域,三级结构像"会员等级"一样层层收紧。为什么要做这种提炼?因为一个关于群的定理,自动适用于旋转、置换、矩阵、密码函数——一次证明,处处收租。
三个层级的定义差异与代表成员:
| 结构 | 要求 | 代表 | 典型用途 |
|---|---|---|---|
| 群 | 一个运算,可逆 | 整数加法、置换群、旋转 | 对称性分析、方程可解性 |
| 环 | 加法群 + 乘法半群 + 分配律 | 整数、多项式、矩阵 | 数论、代数几何 |
| 域 | 环且非零元乘法可逆 | 有理数、模素数剩余类 | 编码、密码、方程求解 |
模 n 剩余类是最便宜的结构实验田。关键事实:模 n 剩余类构成环永远成立,但构成域当且仅当 n 是素数。原因藏在消去律里——模 6 时 2 乘 3 与 2 乘 0 都等于 0,因子 2 是"零因子",乘法等式两边不能约去 2;而模素数的世界里每个非零元都有乘法逆,消去律安全。代码验证:
def has_zero_divisor(n): # 检查模 n 是否存在零因子:a*b ≡ 0 但 a、b 均非 0 for a in range(1, n): for b in range(1, n): if (a * b) % n == 0: return (a, b) return None for n in [6, 7, 12, 13]: print(n, has_zero_divisor(n)) # 输出:6 (2, 3);7 None;12 (3, 4);13 None # 结论:素数模无零因子,非素数模必有零因子——消去律的分水岭
def inverse_table(p): # 素数模 p 下每个非零元的乘法逆元:费马小定理 a^(p-2) 即逆 return {a: pow(a, p - 2, p) for a in range(1, p)} print(inverse_table(7)) # 输出 {1:1, 2:4, 3:5, 4:2, 5:3, 6:6}:每行 a*逆 ≡ 1 mod 7 # 例如 3*5=15=2*7+1。这个求逆操作是 RSA 解密的核心步骤(第 4 章)

循环群由一个元素的幂生成,如模素数下的乘法群(离散对数问题的舞台)。置换群的元素是重排操作,三次魔方群、任何"打乱—还原"系统都是它的化身,它的规模增长极其凶猛——52 张牌的洗牌群阶数超过 8 乘 10 的 67 次方。对称群描述几何对象的保持结构变换,正三角形的对称群有 6 个元素(3 旋转 3 翻折),乘法表可以用凯莱表完整写出:
from itertools import permutations # 三角形对称群 S3 的凯莱表:元素是三个顶点编号的重排 elems = list(permutations(range(3))) compose = lambda g, h: tuple(g[h[i]] for i in range(3)) # 先 h 后 g header = " " + " ".join(f"{''.join(map(str, e)):>3}" for e in elems) print(header) for g in elems: row = [compose(g, h) for h in elems] print(f"{''.join(map(str, g)):>4} " + " ".join(f"{''.join(map(str, r)):>3}" for r in row)) # 凯莱表每行每列都是全体元素的重排(拉丁方性质),这正是"群"的封闭与可逆的体现
非交换性在表里直接可见:先翻后转与先转后翻落在不同格子。S3 还是"最小非交换群",而交换与否将在 2.4 节直接决定方程的命运。
模 4 加法群与四阶旋转群"长得一样":元素不同、运算不同,但对应关系保持运算结构——这叫同构。数学家的日常之一就是在陌生对象里认出熟悉的群:晶体的旋转对称群与某置换群同构,圆上角度加法与模一实数加法同构。同构的判据是存在保持运算的双射。工程里的类比是接口兼容:实现不同、协议相同,即可互换。
💡 关键直觉:抽屉定理视角下,"群大小为素数则必为循环群"几乎是白送的——任取非单位元,反复生成,子群阶数整除群阶数,素数阶没有真因子,一步登顶。这就是拉格朗日定理的威力。
再补一条与工程直接相关的应用注脚:循环群与离散对数正是椭圆曲线密码的骨架(第 4 章详述),凯莱表的非交换性则是物理中角动量不可对易(量子力学不确定关系的代数根源)的有限群投影。抽象结构不是"纯数学的收藏品",而是把不同领域的问题翻译到同一张桌子上谈判的会议室——你后续在密码学、量子计算、量子化学里遇到的每一个"不可对易""阶数""同构",都在本节的概念清单里有明确的档位。环论里还有一条工程常用的事实值得记录:多项式环上的带余除法与整数的带余除法共享同一套算法骨架(欧几里得算法),因此多项式的最大公因式、贝祖等式、中国剩余定理全部平移可用——纠错码的解码与 RSA 在多项式环上的变体(NTRU 等格密码的前身)正是靠这套平移成立的。
运算解剖完毕,下一节进入最常用的代数结构——向量空间,看看矩阵如何把"解方程组"变成自动化流水线。