形式陈述
固定素数 ,取 $\mathbb Z_p$理路p-adic 整数与数p-adic integers and numbers · p进整数与数用相容余数构造 p-adic 整数环与数域,以有界进位证明有理数恰有最终周期的数字展开,并计算精确截断误差。 上首一多项式理路多项式环Polynomial ring系数来自给定环、以形式不定元构造的多项式集合。 ,次数为 。设它模 的像具有指定分解
令 、,则 。存在唯一一对首一多项式 ,满足
唯一性以两个指定剩余块和它们的顺序为条件。若只说“某种因式分解”,交换因子或重新分组仍会得到其他写法。这里也不要求每个块内部平方自由;要求的是两个块之间互素。
有限精度接口输入 、 和式(1),输出模 下唯一的同次数首一因子 。系数均可取 中的代表,最高次系数固定为1。它们满足
以下先处理 。若某一块为常数1,则直接返回1与 ; 也按此处理。零多项式不属于首一输入,首项为单位的非首一多项式可先除以首项,首项不是单位时则不能沿用本页的整系数合同。
直觉
已知 与 的前 位系数相同,下一步只改每个低次系数的第 位:
乘积中 在模 下消失。因此虽然原问题是乘法分解,下一位却由线性方程决定:
首一与次数条件使 的最高次项相消,所以 。待求的 一共恰有 个系数。互素性保证这次线性修正既能解出,又不会有第二种答案。
如何直接解出两组修正系数
有限域多项式环的Euclidean 除余与Bézout回代理路欧几里得整环Euclidean domain带有允许带余除法并严格下降的欧几里得函数的整环。给出 ,满足
只需保存 ,以后每一层复用。令
第一个等式给 ;因为 ,第二个分子确实被 整除。该分子的次数小于 ,所以商的次数小于 ,两项均符合要求。
若另有一组修正,取差得到 。互素性推出 ,而 ,故 ,随后 。这证明每层的唯一性;它来自完整的多项式系数恒等式,不是只在若干域元素上代入检查。
从系数的一位到完整因子
将式(5)的系数选为 ,代入修正式,乘积误差至少被 整除,次数和首一性保持。起点取 的标准代表,归纳即得每一层。
任何另一对模 因子降模后,按归纳假设必须等于 ;它们只能相差 ,而式(4)的解唯一。因此有限层唯一性已经包含所有可能系数,不依赖算法恰好选择了什么代表。
每个系数形成相容的 进数字列,分别收敛到 。次数固定,乘积每个系数只含有限个乘积,故极限满足 。若完整因子还有另一对,降到每一层均相同,所有系数差都被每个 整除,只能为零。这样才得到式(2)的完整存在与唯一性。
例子与边界
把三进三次式分成二次块与一次块
取
于两块互素,即使 自身有重因子也无妨。初始 ,有
模 的逆元可取 ,因为 于 。式(5)给 ,故
下一步得到 。再下一步的误差为 ,修正变成 ,因此 。完整前六层为:
| 精度 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最后一行有逐系数证书
一次因子的根为 。二次因子上的 、 分别是常数与一次项的系数,不能把其中某个数当成另一个近似根。
互素条件失败时,存在与唯一都可能失去
模 分解成 ,但它在 中没有根:平方根会要求整数赋值等于 。因此这两块无法提升成两个一次因子。
同样降为 ,却有 和交换次序后的两对有序提升。它们具有同样的两个剩余块,却不再唯一。假设失败并不自动说明无解,说明的是本页的存在唯一保证已经不适用。
此外,模 的非零零因子不是域元素,不能在那里直接把每个非零多项式首项都取逆。算法中的逆元与除余在 中进行;较高精度只用整系数加乘与已知整除的误差除以 。
推论与应用
怎样证明例子已找全所有基域根
把上述完整一次因子记为 。系数比较给二次因子
由第二层的唯一因子已知 ,因此
二次因子的常数项赋值恰为1,首项赋值为0,一次项在连线之上。Newton多边形的单边分母判据理路Newton 多边形与根的赋值Newton polygon of a polynomial · 牛顿多边形 · Newton polygon valuation theorem由系数赋值构造下凸折线,证明乘积的斜率并集规律,并据此认证可能根赋值和不可约性。给出唯一斜率 ,其分母等于次数2,故 在 上不可约。于是原三次式在整个 中恰有一个根 ,并非只在某个有限余数表中找到一个。
这里的局部二次不可约性由有限精度已固定的赋值证书决定。无需先知道 的所有数字,也无需把扩域中另两根写成根式。
与简单根和有限域分解如何衔接
若指定块 ,另一个块与它互素等价于 。提升后 ,因此简单根Hensel理路Hensel 引理:简单根的唯一提升Hensel's lemma · 亨泽尔引理模素数的简单根在指定余类内唯一提升为 p-adic 根,并以逐位递推计算 11-adic 的三的平方根。就是这个因子接口在一次块上的情形。对于模 的重根,旧页的强Hensel条件可能仍能在更小的球中认证根;不能把它等同于式(1)的互素分块。
Berlekamp理路Berlekamp 多项式因式分解算法Berlekamp factorization algorithm · Berlekamp polynomial factorization计算有限域商代数的 Frobenius 不动子空间,并以 GCD 从中确定性分离不可约因子。或Cantor–Zassenhaus理路Cantor–Zassenhaus 因式分解算法Cantor–Zassenhaus algorithm · Cantor-Zassenhaus factorization先按不可约因子次数分组,再以随机幂、迹映射和 GCD 做 Las Vegas 等次数分裂。先在有限域中找因子。若 有重复因子,可将每个不可约因子的全部幂保持在同一块,再对不同块提升。各块之间仍互素;块内部可能需要进一步的局部方法,而不是把重复副本强行分开。
成本与验收
设两个块均非常数,使用普通稠密乘除,预先求一次Bézout系数需 次有限域运算。逐位提升至 有 轮,每轮包含 次系数环运算与有限域乘除,所以可用保守预算 ;它不是位复杂度。工作系数有至多 位,读取输入的成本及整数加乘成本必须另计。复用数组时,工作存储为 个模 系数;若保存全部中间证书,还需另计其输出大小。
验收者可核初始互素Bézout等式、每层式(4)及次数约束、最终乘积同余。仅有最终乘积同余能证明输出合法,但唯一性仍依赖模 的互素前提。二次块是否已不可约则另由式(7)的赋值证书认证,不能从“算法返回了两个块”自行推断。
参考资料