1. 从有限域中去掉 0
在 Fp 中,0 没有乘法逆元,因此不能进入乘法群。去掉 0 后得到
Fp∗=Fp∖{0}.
它包含
{1,2,…,p−1},
所以群的阶,也就是元素个数,为
∣Fp∗∣=p−1.
群运算是模 p 的乘法。
2. 元素的阶
对群中元素 a,使
ad=1
成立的最小正整数 d,称为 a 的阶(Order),记作
ord(a)=d.
例如在 F7∗ 中考察 2:
21≡2,qquad22≡4,qquad23≡1(mod7).
因此
ord(2)=3.
“元素的阶”和“群的阶”不是同一个概念:前者是幂回到单位元所需的最小次数,后者是群中元素的数量。
3. 生成元与循环群
如果某个元素 g 的幂可以遍历群中的所有元素,则 g 称为生成元(Generator),群称为循环群(Cyclic Group)。
可写成
Fp∗=⟨g⟩.
在 F7∗ 中取 g=3:
303132333435≡1,≡3,≡2,≡6,≡4,≡5(mod7).
结果遍历 {1,2,3,4,5,6},所以 3 是模 7 的一个生成元,且
ord(3)=6.
有限域非零元素乘法群是循环群,但这一结论的完整证明需要更多群论与多项式知识,当前笔记只记录结论和可验证例子。
4. 单位根
若元素 ω 满足
ωn=1,
则称它为一个 n 次单位根(Root of Unity)。
如果 ω 的阶恰好等于 n,则称它为原始 n 次单位根(Primitive n-th Root of Unity)。
这两个条件不能混淆:ωn=1 只说明 ord(ω) 整除 n,不一定等于 n。
5. 在有限域中构造单位根
设 g 是 Fp∗ 的生成元,并且
n∣(p−1).
令
ω=g(p−1)/n.
则
ωn=gp−1=1.
因为 g 的阶为 p−1,这个构造得到的 ω 的阶恰好为 n。
这里必须同时满足:
- g 是整个乘法群的生成元;
- n 整除 p−1。
如果任意选择一个非零元素代替生成元,得到的元素阶可能小于 n。
6. 具体例子:F17 中的 4 次单位根
F17∗ 的阶为 16,而
4∣16.
取一个生成元 g=3,构造
ω=316/4=34≡13(mod17).
验证:
132≡16≡−1(mod17),
所以
134≡1(mod17).
同时 132≡1(mod17),因此 13 的阶不是 1 或 2,而是 4。它是原始 4 次单位根。
7. Python 验证生成元的幂
p = 7
g = 3
values = [pow(g, k, p) for k in range(p - 1)]
print(values)
预期输出会按某种顺序遍历 1 到 6 的全部非零剩余类。
这个例子不能替代“任意有限域非零元素乘法群都是循环群”的一般证明。
8. 自测
- 为什么 0 不属于 Fp∗?
- 群的阶和元素的阶有什么区别?
- ωn=1 是否一定说明 ω 的阶为 n?
- 构造原始 n 次单位根时,为什么需要 n∣(p−1)?
参考答案
- 0 没有乘法逆元。
- 群的阶是元素总数;元素的阶是其幂第一次回到单位元的正指数。
- 不一定,只能说明元素的阶整除 n。
- Fp∗ 的阶为 p−1,阶为 n 的循环子群需要与这个群阶相容。
上一篇:素域 Fp。
下一篇:从单位根到 NTT。