多项式的各类计算(多项式的逆/开根/对数/exp/带余除法/多点求值)

版权声明:本人版权意识薄弱,版权声明什么的... https://blog.csdn.net/Ike940067893/article/details/87283261
  • 预备知识:FFT/NTT

  • 多项式的逆

    给定一个多项式 F ( x ) F(x) ,请求出一个多项式 G ( x ) G(x) ,满足 F ( x ) G ( x ) 1 ( m o d   x n ) F(x)*G(x) \equiv 1(mod\ x^n)
    系数对 998244353 998244353 取模, 1 n 1 0 5 1≤n≤10^5

    首先将多项式的长度拓展至 2 2 的次幂,然后我们要求的是
    G ( x ) F ( x ) 1   ( m o d   x n ) G(x)*F(x) \equiv 1\ (mod\ x^n) 假设已经求出了
    H ( x ) F ( x ) 1   ( m o d   x n 2 ) H(x)*F(x) \equiv 1\ (mod\ x^{⌈\frac n2⌉}) 又因为有
    G ( x ) F ( x ) 1   ( m o d   x n 2 ) G(x)*F(x) \equiv 1\ (mod\ x^{⌈\frac n2⌉}) 两式相减有
    ( G ( x ) H ( x ) ) F ( x ) 0   ( m o d   x n 2 ) (G(x)-H(x))*F(x) \equiv 0\ (mod\ x^{⌈\frac n2⌉}) G ( x ) H ( x ) 0   ( m o d   x n 2 ) G(x)-H(x) \equiv 0\ (mod\ x^{⌈\frac n2⌉}) 因为左边得到的多项式前 n 2 {⌈\frac n2⌉} 项都是 0 0 ,平方前 n n 项都是 0 0 ,所以有
    ( G ( x ) H ( x ) ) 2 0   ( m o d   x n ) (G(x)-H(x))^2 \equiv 0\ (mod\ x^{n}) G 2 ( x ) 2 G ( x ) H ( x ) + H 2 ( x ) 0   ( m o d   x n ) G^2(x)-2G(x)H(x)+H^2(x)\equiv 0\ (mod\ x^n) 两边同时乘以 F ( x ) F(x)
    G ( x ) 2 H ( x ) + H 2 ( x ) F ( x ) 0   ( m o d   x n ) G(x)-2H(x)+H^2(x)F(x)\equiv 0\ (mod\ x^n) G ( x ) 2 H ( x ) H 2 ( x ) F ( x )   ( m o d   x n ) G(x)\equiv2H(x)-H^2(x)F(x)\ (mod\ x^n)
    我们就得到了递推式,时间复杂度如下 T ( n ) = T ( n / 2 ) + O ( n l o g 2 n ) = O ( n l o g 2 n ) T(n)=T(n/2)+O(nlog_2n)=O(nlog_2n)

  • 多项式开根

    给定一个 n 1 n−1 次多项式 F ( x ) F(x) ,求一个在 m o d   x n mod\ x^n 意义下的多项式 G ( x ) G(x) ,使得 G 2 ( x ) F ( x )   ( m o d   x n ) G^2(x) \equiv F(x) \ (mod\ x^n) (多项式的系数在 m o d   998244353 mod\ 998244353 的意义下进行运算, 1 n 1 0 5 1≤n≤10^5
    同样假设求出了 H 2 ( x ) F ( x )   ( m o d   x n 2 ) H^2(x)\equiv F(x)\ (mod\ x^{⌈\frac n2⌉}) 且有
    G 2 ( x ) F ( x )   ( m o d   x n 2 ) G^2(x)\equiv F(x)\ (mod\ x^{⌈\frac n2⌉}) 所以
    G ( x ) H ( x ) 0   ( m o d   x n 2 ) G(x)-H(x) \equiv 0\ (mod\ x^{⌈\frac n2⌉}) ( G ( x ) H ( x ) ) 2 0   ( m o d   x n ) (G(x)-H(x))^2 \equiv 0\ (mod\ x^{n}) G 2 ( x ) 2 G ( x ) H ( x ) + H 2 ( x ) 0   ( m o d   x n ) G^2(x)-2G(x)H(x)+H^2(x)\equiv 0\ (mod\ x^n) F ( x ) 2 G ( x ) H ( x ) + H 2 ( x ) 0   ( m o d   x n ) F(x)-2G(x)H(x)+H^2(x)\equiv 0\ (mod\ x^n)
    所以 2 G ( x ) F ( x ) H ( x ) + H ( x )   ( m o d   x n ) 2G(x)\equiv \frac{F(x)}{H(x)}+H(x)\ (mod\ x^n)
    此处除法转化为乘上多项式的逆,就能递推了,时间复杂度也是 O ( n l o g 2 n ) O(nlog_2n)

  • 多项式求自然对数

    给出 n 1 n−1 次多项式 F ( x ) F(x) ,求一个 m o d   x n mod\ x^n 下的多项式 G ( x ) G(x) ,满足 G ( x ) ln F ( x )   ( m o d   x n ) G(x) \equiv \ln F(x)\ (mod\ x^n) .
    多项式的系数在 m o d   998244353 mod\ 998244353 的意义下进行运算, 1 n 1 0 5 1≤n≤10^5
    G ( x ) = l n   F ( x ) = F ( x ) F ( x ) d x = F ( x ) F 1 ( x ) d x \begin{aligned} G(x)&=ln\ F(x)\\ &=\int \frac{F'(x)}{F(x)}dx\\ &=\int F'(x)F^{-1}(x)dx \end{aligned} 所以 G = F F 1 G=F'F^{-1} ,直接多项式求逆+多项式求导积分就行了
    求逆复杂度 O ( n l o g 2 n ) O(nlog_2n) ,求导积分复杂度 O ( n ) O(n) ,总时间复杂度仍是 O ( n l o g 2 n ) O(nlog_2n)

  • 多项式exp(待更…)

  • 带余除法(待更…)

  • 多项式多点求值(待更…)

猜你喜欢

转载自blog.csdn.net/Ike940067893/article/details/87283261