多项式理论 PartⅠ- 浅谈多项式牛顿迭代、多项式取模以及 Bostan-Mori 算法

一、多项式牛顿迭代

适用于解决给定满足一定条件的 F,求多项式 G 使得 F(G(x))0 的问题。

已知 F(G(x))0(modxN),其中 F 可以泰勒展开且 G 常数项容易求得,则可以利用如下方式由 Gmodxn 推出 Gmodx2n,进而迭代出 G

  • G1G(modxn),G2G(modx2n),则 G2G10(modxn),故 (G2G1)20(modx2n)
  • 由泰勒展开公式知 F(G2(x))n=0F(n)(G1(x))n!(G2(x)G1(x))n(modx2n),其中 n2 时对应项取余后为 0
  • 所以可以得到 F(G2(x))F(G1(x))+F(G1(x))(G2(x)G1(x))(modx2n),由 F(G2(x))0 可以得到:

G2(x)G1(x)F(G1(x))F(G1(x))

即可用其求出与 F 同阶且满足要求的 G,对常见的 F 时间复杂度为 O(nlogn),其中 nF 的阶数。

二、多项式取模

适用于解决已知多项式 F(x),G(x),求 Q(x),R(x) 使得 F(x)=G(x)Q(x)+R(x) 的问题,其中 R 的阶数小于 G

只需求出 Q 后即可简易求出 R,令 n,m 分别为 F,G 的阶数,并强制让 R 的阶数为 m1,并记 FR 表示 F 系数翻转后的结果,则 FR(x)=xnF(1x),又由 F(1x)=G(1x)Q(1x)+R(1x)FR(x)=GR(x)QR(x)+xnm+1RR(x),故 QRFR(x)GR1(x)(modxnm+1),至此问题已经解决,时间复杂度为 O(nlogn)(视 n,m 同阶)。

三、Bostan-Mori 算法

适用于给定多项式 F,G 和所求项数 n,求 [xn]F(x)G(x) 的值。

[xn]F(x)G(x)=[xn]F(x)G(x)G(x)G(x),观察到 G(x)G(x) 只在偶数次幂有值,故将 F(x)G(x) 拆成 P(x2)+xQ(x2) 的形式,并设 G(x)G(x)=T(x2),则所求为 [xn]P(x2)+xQ(x2)T(x2),根据 n 的奇偶性递归计算即可,时间复杂度为 O(mlognlogm),其中 m=degF

posted @   hhoppitree  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示