9.4 有限域Finite fields
本页为译文 + 高中讲解合一:黑色正文为忠实翻译;彩色框(目标 / 例 / 分步推演)与配图为面向高中生的详解,逐步推演、举例、画图,不用比喻。
我们现在暂停一下,来发展一些有限域的理论。我们已经遇到过素数阶的有限域 \(\mathbb{F}_p=\mathbb{Z}_p\),但现在我们要讨论更一般的、合数(素数幂)阶的有限域。
为避免退化情形,我们总是假定我们的域至少有 \(2\) 个元素(这样 \(0\neq 1\))。注意,有限域 \(F\) 作为加法结构是一个有限加法群 \((F,0,+,-)\);但若去掉 \(0\) 元,则得到一个乘法群 \((F^\times,1,\times,\cdot^{-1})\),这里 \(F^\times:=F\setminus\{0\}\)。严格来说,有限域上有两种乘法结构:一种是元素之间的乘法群结构 \(x\times y\)(对 \(x,y\in F\)),另一种是来自“反复相加”的 \(\mathbb{Z}\)-模结构 \(n\cdot x\)(对 \(n\in\mathbb{Z},\,x\in F\))。但它们显然由恒等式 \(n\cdot x=(n\cdot 1)\times x\) 联系在一起;正因如此,我们将滥用记号,把整数 \(n\) 与域元素 \(n\cdot 1\) 等同看待,并把这两种乘法结构也等同起来。
在 \(F=\mathbb{F}_5=\{0,1,2,3,4\}\) 里:
- 乘法群结构 \(x\times y\):两个域元素相乘,例如 \(2\times 3=6\equiv 1\)。
- \(\mathbb{Z}\)-模结构 \(n\cdot x\):把 \(x\) 加 \(n\) 次,例如 \(3\cdot 2=2+2+2=6\equiv 1\)。
这里 \(3\cdot 2\) 里的 \(3\) 是普通整数(表示“加几次”),\(2\) 是域元素。恒等式 \(n\cdot x=(n\cdot 1)\times x\) 说的是:先算 \(n\cdot 1=3\cdot 1=3\)(域元素),再用乘法群相乘 \(3\times 2=6\equiv 1\),结果一样。所以以后写 \(3\) 既可指整数 \(3\) 也可指域元素 \(3\cdot 1\),不再区分。
有限域最重要的例子,是素数阶 \(|\mathbb{F}_p|=p\) 的循环群 \(\mathbb{F}_p:=\mathbb{Z}_p\)。更一般地,对任意素数 \(p\) 与任意整数 \(k\ge 1\),都可以造出一个阶为 \(|\mathbb{F}_{p^k}|=p^k\) 的有限域 \(\mathbb{F}_{p^k}\)(习题 9.4.4)。这样的域在域同构意义下是唯一的(习题 9.4.6)。
9.4.1 加法结构与特征
因为有限域同时具有加法群结构和乘法群结构,我们有时会在群论概念上加下标,标明是针对加法还是乘法。例如,用 \(\operatorname{ord}_+(x)\) 表示 \(x\in F\) 的加法阶,用 \(\operatorname{ord}_\times(x)\) 表示乘法阶。我们现在指出:有限域中所有非零元 \(x\in F^\times\) 都有相同的加法阶 \(\operatorname{ord}_+(x)\)。
- 加法阶 \(\operatorname{ord}_+(x)\):使 \(\underbrace{x+x+\cdots+x}_{n\text{ 个}}=n\cdot x=0\) 成立的最小正整数 \(n\)。
- 乘法阶 \(\operatorname{ord}_\times(x)\)(对 \(x\neq 0\)):使 \(\underbrace{x\times x\times\cdots\times x}_{n\text{ 个}}=x^n=1\) 成立的最小正整数 \(n\)。
- 为什么 \(p\) 必须是素数?关键是“域里没有零因子”:若 \(u\times v=0\) 则 \(u=0\) 或 \(v=0\)。假设加法阶 \(\operatorname{ord}_+(1)=nm\) 能拆成两个 \(>1\) 的因子,记 \(u=n\cdot 1\)、\(v=m\cdot 1\)。它们都非零(因为 \(n,m\) 比加法阶小,加不到 \(0\))。
- 但 \(u\times v=(n\cdot1)\times(m\cdot1)=(nm)\cdot1=0\)(恰好加 \(nm\) 次 \(1\))。这就出现了“两个非零元相乘为 \(0\)”,与域的性质冲突。所以加法阶不可能是合数,只能是素数 \(p\)。
- 为什么每个非零元加法阶也是 \(p\)?因为 \(p\cdot x=(p\cdot1)\times x=0\times x=0\),说明 \(x\) 加 \(p\) 次就回到 \(0\),于是 \(\operatorname{ord}_+(x)\mid p\)。\(p\) 是素数,因子只有 \(1\) 和 \(p\);非零元加法阶不会是 \(1\),故为 \(p\)。
我们把素数 \(\operatorname{char}(F):=p=\operatorname{ord}_+(1)\) 称为有限域 \(F\) 的特征(characteristic)。容易看出,\(F\) 此时是 \(\mathbb{F}_p\) 上的一个向量空间;特别地它有某个维数 \(k\ge 1\),于是 \(|F|=p^k\)。对 \(F^\times\) 应用 Cauchy 定理(习题 3.1.2),我们看出对所有 \(x\in F^\times\),乘法阶 \(\operatorname{ord}_\times(x)\) 整除 \(|F^\times|=|F|-1\)。换句话说,
\[\tag{9.8} x^{|F|-1}=1\quad\text{对所有 } x\in F^\times,\]从而
\[\tag{9.9} x^{|F|}=x\quad\text{对所有 } x\in F.\]既然每个元素加 \(p\) 次都回到 \(0\),那么 \(F\) 里的“整数标量乘法” \(n\cdot x\) 实际上只依赖 \(n\bmod p\),也就是说标量来自 \(\mathbb{F}_p=\{0,1,\dots,p-1\}\)。于是 \(F\) 就是 \(\mathbb{F}_p\) 上的向量空间。任何有限维向量空间都有一组基 \(e_1,\dots,e_k\),每个元素唯一写成 \(c_1e_1+\cdots+c_ke_k\),每个系数 \(c_i\) 有 \(p\) 种选择,所以
\[|F|=\underbrace{p\times p\times\cdots\times p}_{k\text{ 个}}=p^k.\]这就解释了:有限域的大小只能是素数幂。式 (9.8)(9.9) 则是“小费马定理”在一般有限域上的推广——\(x^{|F|}=x\) 对每个元素都成立。
这有如下推论。对任意正整数 \(n\),定义 \(n\) 的欧拉函数 \(\varphi(n)\) 为区间 \([1,n]\) 中与 \(n\) 互素的元素个数(等价地,\(\varphi(n)=|\mathbb{Z}_n^\times|\))。
- 上界:方程 \(x^n=1\) 即 \(x^n-1=0\)。在任何域里,一个 \(n\) 次多项式至多有 \(n\) 个根,所以满足 \(x^n=1\) 的 \(x\) 至多 \(n\) 个。
- 下界:写 \(|F|-1=nm\)。对任意 \(y\in F^\times\),把 \(y\) 先 \(m\) 次方得到 \(y^m\),它一定满足 \((y^m)^n=y^{nm}=1\)。所以 “\(m\) 次方” 这个操作把 \(F^\times\)(\(nm\) 个元素)全部送进了解集。而 \(y\mapsto y^m\) 每个像至多被 \(m\) 个 \(y\) 取到(因 \(y^m=c\) 至多 \(m\) 解),故像至少有 \(nm/m=n\) 个。
- 上界 \(\le n\) 与下界 \(\ge n\) 合起来:恰好 \(n\) 个。第一条证毕。
- 第二条(数“恰好 \(n\) 阶”的元素):每个满足 \(x^n=1\) 的 \(x\),其乘法阶 \(d\) 必整除 \(n\)。把这 \(n\) 个元素按阶 \(d\) 分类相加,得左边和式 \(=n\)。而经典恒等式 \(\sum_{d\mid n}\varphi(d)=n\) 给出右边。逐个比较 \(n\) 的因子(归纳)即得 \(|\{\operatorname{ord}_\times=n\}|=\varphi(n)\)。
由于对所有 \(n\ge 1\) 都有 \(\varphi(n)\neq 0\),我们尤其看出 \(F^\times\) 含有一个阶为 \(|F|-1\) 的元素;我们称这样的元素为 \(F^\times\) 的本原元(primitive element,又称生成元)。这特别说明 \(F^\times\) 是一个阶为 \(|F|-1\) 的乘法循环群。
另一个推论是:
- 拆成一元和:因为求和变量互相独立,整个 \(k\) 重和等于 \(k\) 个一元和相乘。只要其中一个一元和为 \(0\)(由 \(\min h_i<|F|-1\) 保证至少有一个指数 \(h_i\) 落在范围内),整个乘积就是 \(0\)。于是只需处理一元情形 \(\sum_{x\in F}x^h\)。
- 情形 \(h=0\):每项都是 \(1\),共 \(|F|=p^k\) 项,和为 \(p^k\cdot1\)。但在特征 \(p\) 的域里 \(p\cdot1=0\),所以 \(p^k\cdot1=0\)。
- 情形 \(0
用一个“换元不变”的技巧。取本原元 \(\omega\),乘以 \(\omega\) 只是把 \(F\) 里的元素重新排列(双射),所以 \(\sum_x x^h\) 与 \(\sum_x(\omega x)^h\) 是同一个和。但后者 \(=\omega^h\sum_x x^h\)。 - 于是 \(S=\omega^h S\),即 \((\omega^h-1)S=0\)。因为 \(\omega\) 的乘法阶是 \(|F|-1\),而 \(0
9.4.2 Chevalley–Warning 定理
我们现在可以给出 Chevalley 与 Warning 关于有限域上多变量多项式方程组解数的经典定理。
这个证明的精妙之处在于把组合问题(数有多少组解)翻译成代数问题(一个大求和等于几),分三步:
- 造指示量。由小费马定理式 (9.8),对非零 \(y\) 有 \(y^{|F|-1}=1\),对 \(y=0\) 有 \(0^{|F|-1}=0\)。所以 \(1-P_i^{|F|-1}\) 恰好在 \(P_i=0\) 时取 \(1\)、否则取 \(0\):这就是“第 \(i\) 个方程成立吗”的开关。
- 把所有开关相乘再对全部 \((x_1,\dots,x_n)\) 求和。只有“所有方程同时成立”的点贡献 \(1\),其余贡献 \(0\)。所以这个大和(在 \(F\) 中)就等于解的个数 \(\bmod\,\operatorname{char}(F)\)。
- 证明这个大和是 \(0\)。展开后是一堆单项式 \(x_1^{a_1}\cdots x_n^{a_n}\)。因为总次数被 \(\sum\deg(P_i)(|F|-1)
大和等于 \(0\)(在特征 \(p\) 的 \(F\) 中),就意味着真正的整数解数是 \(p=\operatorname{char}(F)\) 的倍数。
取 \(F=\mathbb{F}_3\)(\(\operatorname{char}=3\)),\(n=3\) 个变量,只有 \(m=1\) 个多项式 \[P_1(t_1,t_2,t_3)=t_1^2+t_2^2+t_3^2.\] 这里 \(\deg(P_1)=2<3=n\),条件满足。定理断言:解的个数是 \(3\) 的倍数。
- 显然 \((0,0,0)\) 是一个解。
- 定理保证解数是 \(3\) 的倍数,所以解数 \(\ge3\),于是一定还有非零解(这正是下面推论 9.25 的内容)。
- 实际数一下:在 \(\mathbb{F}_3\) 中平方值只有 \(0^2=0,\,1^2=1,\,2^2=1\)。要 \(t_1^2+t_2^2+t_3^2\equiv0\),三个平方(各为 \(0\) 或 \(1\))之和模 \(3\) 为 \(0\),即三个都是 \(0\),或三个都是 \(1\)。
· 三个都是 \(0\):\((0,0,0)\),\(1\) 组。
· 三个都是 \(1\):每个 \(t_i\in\{1,2\}\),共 \(2^3=8\) 组。 - 合计 \(1+8=9\) 组,确实是 \(3\) 的倍数。定理预言成功。
由于 \(\operatorname{char}(F)\ge 2\),我们有如下推论:
- 解的总数 \(N\) 是 \(\operatorname{char}(F)=p\) 的倍数,即 \(N\in\{0,p,2p,\dots\}\)。
- 若已知有一个解,则 \(N\ge1\),于是 \(N\neq0\);既是 \(p\) 的倍数又非零,必有 \(N\ge p\ge2\)。
- 所以至少有第二个解。典型应用:若一组齐次多项式(每个 \(P_i\) 没有常数项)变量足够多,则 \((0,\dots,0)\) 总是解,于是必有非平凡解。
接下来,我们给出一个有用的引理,它表明稀疏多项式的零点不能有过高的重数。
设 \(P=\sum_i c_i x^i\)(其中恰有 \(k\) 个 \(c_i\neq0\),且 \(c_j\neq0\))。逐项算:
\[xP'=\sum_i i\,c_i x^i,\qquad jP=\sum_i j\,c_i x^i,\] \[xP'-jP=\sum_i (i-j)\,c_i x^i.\]看 \(x^j\) 这一项:系数变成 \((j-j)c_j=0\),被消掉了!而其它各项 \((i-j)c_i\) 至多还有 \(k-1\) 个非零(原来 \(k\) 个非零系数,少了 \(x^j\) 这一个)。重数的传递用到一个事实:若 \(x_0\) 是 \(P\) 的 \(k\) 重零点,则 \(x_0\) 是 \(P'\) 的 \(k-1\) 重零点,于是也是 \(xP'-jP\) 的 \(k-1\) 重零点。这样系数更少、却仍有高重零点,与归纳假设冲突。
在 \(\mathbb{F}_5\) 中取 \(P(x)=x^4-1\),它只有 \(2\) 个非零系数(\(x^4\) 与常数项),故 \(k=2\)。引理断言:\(P\) 在 \(\mathbb{F}_5^\times\) 上的零点重数 \(\le k-1=1\),即全是单根。
- 由式 (9.8),每个非零元 \(x\) 都满足 \(x^{5-1}=x^4=1\),即 \(x^4-1=0\)。所以 \(1,2,3,4\) 全是根。
- \(P\) 次数为 \(4\),已经有 \(4\) 个不同的根,故 \(P=(x-1)(x-2)(x-3)(x-4)\),每个都是单根,重数 \(1\)。
- 这印证引理:只有 \(2\) 个非零系数的多项式,根的重数顶多 \(1\),不会出现 \((x-x_0)^2\) 之类的高重因子。
习题
- 9.4.1 设 \(R\) 为含 \(1\) 的交换环,记 \(R[t]_{\mathrm{monic}}\) 为 \(R[t]\) 中所有首一多项式(最高次系数为 \(1\))构成的乘法半群。称首一多项式为不可约,若它没有真的首一因子。利用 Euclid 算法,证明每个首一多项式都能唯一分解为首一不可约因子之积(不计次序)。特别地,这表明当 \(F\) 为域时,\(F[t]\) 是唯一分解整环。
- 9.4.2 设 \(F\) 为有限域。在 \(F[t]_{\mathrm{monic}}\) 上定义 von Mangoldt 函数 \(\Lambda:F[t]_{\mathrm{monic}}\to\mathbb{R}\):若 \(f=g^k\)(\(g\) 不可约、\(k\ge1\))则令 \(\Lambda(f):=\deg(g)\),否则 \(\Lambda(f):=0\)。利用习题 9.4.1,证明对所有 \(f\) 有 \(\deg(f)=\sum_{g\mid f}\Lambda(g)\)(其中 \(g\mid f\) 表示 \(g\) 是 \(f\) 的因子)。特别地导出:对所有 \(s>1\), \[\sum_{f}\frac{\deg(f)}{|F|^{s\deg(f)}}=\Big(\sum_{f}\frac{\Lambda(f)}{|F|^{s\deg(f)}}\Big)\Big(\sum_{f}\frac{1}{|F|^{s\deg(f)}}\Big).\] 由此导出 \(F[t]\) 的素数定理:对所有 \(k\ge1\),\(\sum_{\deg(f)=k}\Lambda(f)=|F|^k\)。再导出 \(F[t]\) 的 Bertrand 假设:对每个 \(k\ge1\) 至少存在一个次数为 \(k\) 的首一不可约多项式。并建立 \(F[t]\) 的 Riemann 假设: \[|\{f\in F[t]_{\mathrm{monic}}:\deg(f)=k,\ f\text{ 不可约}\}|=|F|^k/k+O\!\big(|F|^{k/2}\big).\] 注意这比 \(\mathbb{Z}\) 上相应的 Riemann 假设容易得多!
- 9.4.3 设 \(F\) 为阶 \(|F|=p^k\) 的有限域。设 \(f(t)\in\mathbb{F}_p[t]\) 满足 \(f(t)\mid t^{p^k}-t\)。证明 \(f(t)\) 在 \(F\) 中恰有 \(\deg(f)\) 个不同的零点。(提示:若 \(t^{p^k}-t=f(t)g(t)\),则 \(t^{p^k}-t\) 的零点是 \(f\) 与 \(g\) 零点之并。)用 Galois 理论的语言说,这意味着 \(t^{p^k}-t\) 的每个因子都在 \(F\) 上完全分裂。
- 9.4.4 设 \(F\) 为有限域,\(k\ge1\) 为整数。设 \(f(t)\in F[t]\) 为次数 \(k\) 的首一不可约多项式(由习题 9.4.2 存在)。证明商环 \(F[t]/(f(t))\) 是阶 \(|F|^k\) 的有限域;并证明它作为加法群同构于向量空间 \(F^k\)。注意这个构造表明:对任意素数 \(p\) 与任意 \(k\ge1\),都存在阶 \(p^k\) 的域。
- 9.4.5 设 \(F\) 为阶 \(|F|=p^k\) 的有限域。设 \(\omega\) 为 \(F^\times\) 的本原元。设 \(f(t)\in\mathbb{F}_p[t]\) 为 \(\omega\) 在 \(\mathbb{F}_p\) 上的极小多项式,即 \(\mathbb{F}_p[t]\) 中使 \(f(\omega)=0\) 的次数最小的首一多项式。证明 \(\deg(f)=k\),且向量 \(1,\omega,\dots,\omega^{k-1}\) 构成 \(F\)(视为 \(\mathbb{F}_p\) 上向量空间)的一组基。
- 9.4.6 设 \(F,G\) 为同阶有限域 \(|F|=|G|=p^k\)。证明 \(F\) 与 \(G\) 同构。(提示:取 \(F^\times\) 的本原元 \(\omega\),设 \(f(t)\) 为 \(\omega\) 的极小多项式,用习题 9.4.3 在 \(G\) 中找到 \(f\) 的一个根,并把 \(\omega\) 映到它,从而建立域同构。)
- 加法侧:有限域的特征 \(p=\operatorname{char}(F)\) 是素数(引理 9.21),\(F\) 是 \(\mathbb{F}_p\) 上向量空间,故 \(|F|=p^k\)。
- 乘法侧:\(F^\times\) 是阶 \(|F|-1\) 的循环群,存在本原元(引理 9.22);由此得幂和恒等式(引理 9.23)。
- 主结果:Chevalley–Warning 定理(9.24)——次数之和小于变量数时,方程组解数被特征整除;推论 9.25 给出“有一解必有二解”。
- 工具引理:稀疏多项式零点重数受非零系数个数限制(引理 9.26),这是后续“多项式方法”证明组合定理的关键武器。
返回 全书目录