形式陈述
输入为 F q [ x ] 中首一、平方自由多项式 f 。算法先做 distinct-degree factorization。维护
v d = x q d mod f , 并计算 gcd ( f , v d − x ) ;在已经移除较小次数因子的前提下,本轮所得部分恰由全部次数为 d 的不可约因子组成,因为有限域上首一不可约多项式的次数整除 d 当且仅当它整除 x q d − x 。这样把输入拆成若干 equal-degree 块。
对一个由 r ≥ 2 个次数均为 d 的不可约因子组成的块 F ,若 q 为奇数,随机取次数小于 deg F 的 a 。先算 gcd ( F , a ) :若它已经是真因子就直接切分,若为 F 就重抽;只有在 a 模每个不可约因子都非零时,才计算
h = a ( q d − 1 ) / 2 mod F . 在每个因子商域 F q d 中,非零 a 的该幂为 1 或 − 1 。因此 gcd ( F , h − 1 ) 与 gcd ( F , h + 1 ) 按二次剩余标签分组;若得到 1 或 F 就重抽,得到真因子则递归。偶特征下 1 = − 1 ,必须改用从各 F q d 分量到 F 2 的绝对迹,计算随机元素的 Frobenius 幂和后,以 gcd ( F , Tr ( a ) ) 分裂。
每次候选因子都用 GCD 和精确除法验证,失败只导致重试,所以这是Las Vegas 随机算法 公理库 随机化算法 Randomized algorithm 把随机比特作为额外输入并分析输出正确率或运行时间分布的算法。 :输出永远正确,运行时间随机且期望为多项式。开始前的平方自由分解 公理库 多项式平方自由分解 Square-free factorization of polynomials · Square-free decomposition 以形式导数、GCD 与正特征下的 Frobenius 开根分离不可约因子的重数。 保证各分量互异;底层有限域 公理库 有限域 Finite field · Galois field 底层集合有限的域。 保证 Frobenius 周期、二次剩余或迹映射的计数成立。
直觉
distinct-degree 阶段像先按“扩域尺寸”整理未知因子。所有次数为 d 的不可约因子都在 F q d 中完全分裂,而较大次数因子不会被 x q d − x 捕获。得到等次数块后,每个未知因子对应商环直积中的一个同型域分量,随机选取的 a 在这些分量里近似独立。
奇特征的指数 ( q d − 1 ) / 2 把每个非零分量压成二值标签 ± 1 。只要不同因子没有全落到同一标签,GCD 就一次抽出一个非空真子集;r ≥ 2 时一次成功概率有常数下界,重复次数的期望受控。偶特征用迹把分量压到 F 2 ,扮演同样的随机二分器。随机性只负责寻找好切分,不负责相信一个未经验证的答案。
例子与边界
在 F 5 [ x ] 中取等次数块
F = x 2 + 1 = ( x − 2 ) ( x − 3 ) , 这里 d = 1 , r = 2 。选 a = x + 1 ,则
h = a ( 5 1 − 1 ) / 2 = ( x + 1 ) 2 ≡ 2 x ( mod x 2 + 1 ) . 计算
gcd ( F , h − 1 ) = gcd ( x 2 + 1 , 2 x − 1 ) = x − 3 , 得到真因子,另一个商为 x − 2 。若选 a = x ,则 h = x 2 ≡ − 1 在两个分量上相同,gcd ( F , h − 1 ) = 1 、gcd ( F , h + 1 ) = F ,本轮没有信息;算法重抽即可,不能把这次失败误报为 F 不可约。
等次数前提不能省略。若一个块同时含一次与二次不可约因子,统一使用 ( q d − 1 ) / 2 不再在所有分量上产生预期二值标签,成功概率论证也失去对象。奇特征公式更不能照搬到 q 为偶数,因为 + 1 = − 1 ;显式迹算法的指数项数与 q = 2 s 、扩张次数 d 有关,实际实现常用重复平方而不是构造天文大的指数。
“期望多项式”还依赖随机元素近似均匀和域运算成本。每轮模幂按 log ( q d ) 次平方乘计量,若 q 本身很大,应按 log q 而非把一个域元素操作当无条件常数。小输入上随机数生成和多次 GCD 可能超过确定性方法;输出顺序也不是确定的,但将因子首一化并排序可获得规范结果。
推论与应用
标准有限域因式分解流水线由平方自由分解、distinct-degree factorization 与 equal-degree factorization 三段组成。分段使每个定理只承担一个条件:第一段处理重数,第二段确定次数类别,Cantor–Zassenhaus 的第三段只负责在同次数块内切分。由此既能单独替换更快的 Frobenius 计算,也能为每阶段留下乘积与整除证书。
与Berlekamp 算法 公理库 Berlekamp 多项式因式分解算法 Berlekamp factorization algorithm · Berlekamp polynomial factorization 计算有限域商代数的 Frobenius 不动子空间,并以 GCD 从中确定性分离不可约因子。 相比,本算法不先求整个 n × n Frobenius 不动空间,也不确定性枚举所有 q 个常数;其大域依赖通常更好,代价是随机运行时间。现代系统会按 q 、次数、稀疏度与可用线性代数选择混合方案。无论选择哪条路线,不能把 Las Vegas 说成“有小概率给错答案”:可以失败重试的是切分尝试,最终交付的每个因子都经过精确验证。
参考资料
David G. Cantor and Hans Zassenhaus, “A New Algorithm for Factoring Polynomials over Finite Fields,” Mathematics of Computation 36(154), 1981, pp. 587–592.
Joachim von zur Gathen and Daniel Panario, “Factoring Polynomials over Finite Fields: A Survey,” Journal of Symbolic Computation 31(1–2), 2001, pp. 3–17.
Joachim von zur Gathen and Jürgen Gerhard, Modern Computer Algebra , 3rd ed., Cambridge University Press, 2013, chapter on factoring polynomials over finite fields.