多项式学习合集
牛顿迭代
问题描述
已知函数 \(G(x)\) ,求一个多项式 \(F(x)\ mod\ x^n\) 满足 \(G(F(x))\equiv 0\ (mod\ x^n)\) 。
Solution
我们假设已经求出 \(G(F_0(x))\equiv 0\ (mod\ x^{\lceil\frac{n}{2}\rceil})\) ,考虑如何拓展到 \(mod\ x^n\) 下。
我们把 \(G(F(x))\) 在 \(F_0(x)\) 处进行泰勒展开:
因为 \(F(x)\) 和 \(F_0(x)\) 的最后 \(\lceil\frac{n}{2}\rceil\) 项相同,所以 \((F(x)-F_0(x))^2\) 最低非 \(0\) 项系数大于 \(2\cdot\lceil\frac{n}{2}\rceil\) ,所以可以得到:
然后对 \(n=1\) 的时候,我们单独求出满足条件的 \(F(x)\) 即可递推出答案。
多项式求逆
问题描述
给出 \(F(x)\) ,求出 \(G(x)\) ,使得 \(F(x)\cdot G(x)\equiv 1 \ (mod\ x^n)\) ,系数对 \(998244353\) 取模。
Solution
我们设 \(H(x)\) 满足 \(F(x)\cdot H(x)\equiv 1\ (mod\ x^{\lceil\frac{n}{2}\rceil})\) 。
而显然 \(F(x)\cdot G(x)\equiv 1 \ (mod\ x^{\lceil\frac{n}{2}\rceil})\) 。
两者相减,我们可以得到 \(F(x)\cdot(G(x)-H(x))\equiv 0\ (mod\ x^{\lceil\frac{n}{2}\rceil})\) 。
所以 \(G(x)-H(x)\equiv 0\ (mod\ x^{\lceil\frac{n}{2}\rceil})\) 。
我们将等式平方,可以得到:
同时乘上 \(F(x)\) ,则:
因为 \(F(x)\cdot G(x)=1\) ,所以我们有:
然后我们就可以根据这个等式倍增求解了,每次算出上一层的 \(H(x)\) ,然后推出 \(G(x)\) ,时间复杂度为 \(O(n\log n)\) 。
分治 \(FFT\)
问题描述
已知一个长度为 \(n\) 的数组 \(g[0],g[1],\cdots,g[n-1]\) ,求 \(f[0],f[1],\cdots,f[n-1]\) ,其中:
边界为 \(f[0]=1,g[0]=0\) ,答案对 \(998244353\) 取模。
Solution
我们先对 \(f[i]\) 的递推式变一下形。
因为 \(g[0]=0\) ,所以上下是完全等价的。
我们设 \(F(x),G(x)\) 分别为数组 \(f,g\) 的生成函数。
我们可以得到:
可以发现和 \(F(x)\) 相比,我们有:
然后就可以直接上多项式求逆的模板了。
多项式对数函数(多项式 \(\ln\) )
问题描述
给出一个 \(n-1\) 次多项式 \(A(x)\) , 求一个 \(mod\ x^n\) 下的多项式 \(B(x)\) ,满足 \(B(x)=\ln A(x)\) 。
Solution
我们定义 \(G(x)=F(A(x)),F(x)=\ln x\) 。
根据链式法则,我们有:
所以我们只需要对 \(A(x)\) 求逆,即可算出 \(G'(x)\) 。
由于求导和不定积分是互逆的,所以我们再对 \(G’(x)\) 求一个积分即可得到 \(G(x)\) 。
- 求导公式: \(F(x)=x^n,F'(x)=n\cdot x^{n-1}\) 。
- 积分公式: \(\int x^ndx=\frac{1}{n+1}x^{n+1}\) 。
多项式指数函数(多项式 \(exp\) )
问题描述
给出一个 \(n-1\) 次多项式,求一个 \(mod\ x^n\) 下的多项式 \(B(x)\) ,满足 \(B(x)\equiv e^{A(x)}\) 。
Solution
我们先对原式取一个 \(\ln\) ,可以得到:
我们设 \(G(B(x))=\ln B(x)-A(x)\) ,那么就要求这一个函数的零点。我们将 \(B(x)\) 看做变量, \(A(x)\) 看做常量,对 \(G(B(x))\) 求导,可以得到 \(G'(B(x))=\frac{1}{B(x)}\) 。
代入牛顿迭代的公式得:
因为 \(A(0)=0\) ,所以 \(B(x)\) 的常数项为 \(1\) ,剩下的就是各种板子了。
多项式除法
问题描述
给定一个 \(n\) 次多项式 \(F(x)\) 和一个 \(m\) 次多项式 \(G(x)\) ,请求出多项式 \(Q(x),R(x)\) ,满足一下条件:
- \(Q(x)\) 的次数为 \(n-m\) , \(R(x)\) 的次数小于 \(m\)
- \(F(x)=Q(x)\cdot G(x)+R(x)\) 。
Solution
假设 \(A(x)\) 为一个 \(n\) 次多项式,我们这样定义 \(A_r(x)\) :
- \(A_r(x)=x^n\cdot A(\frac{1}{x})\) 。
显然,我们可以得到 \(A_r(x),A(x)\) 的区别是系数翻转了。
开始推式子:
在模 \(x^{n-m+1}\) 的意义下,我们可以得到:
然后 \(R(x)=F(x)-G(x)\cdot Q(x)\) 。
多项式开根
问题描述
给定一个 \(n-1\) 次多项式 \(A(x)\) ,求一个在 \(mod\ x^n\) 意义下的多项式 \(B(x)\) ,使得 \(B^2(x)\equiv A(x)\ (mod\ x^n)\) 。若有多解,请取零次项系数较小的作为答案。
Solution
我们假设已经求出一个 \(H(x)\) ,满足:
显然,我们有:
多项式快速幂
问题描述
给定一个 \(n-1\) 次多项式,求一个在 \(mod\ x^n\) 意义下的多项式 \(B(x)\) ,使得 \(B(x)\equiv A^k(x)\ (mod\ x^n)\) 。
Solution
两边取 \(\ln\) ,可以得到: