多项式初等函数
在模 \(x^n\) 意义下的多项式形成一个交换环,常数项非零的多项式有唯一乘法逆元。仿照高数的定义,定义多项式的积分,求导。由求导定义多项式的 \(\ln,\exp\)。
具体的,求导满足线性性和链式法则,积分是求导的逆运算,我们认为 \(C=0\)。
具体的,\(\frac{\mathrm{d}}{\mathrm{d}x}\ln(x)=\frac{1}{x},~\frac{\mathrm{d}}{\mathrm{d}x}\exp(x)=\exp(x)\)。规定:若 \(G=\exp(F)\),即 \(F=\ln(G)\),那么有 \([x^0]F=0,~[x^0]G=1\)。
根据这两个微分方程,我们可以直接得到一个 \(\ln(x)\) 和 \(\exp(x)\) 的 \(x^k\) 系数递推式,因此说明了 \(\ln(x)\) 和 \(\exp(x)\) 都是关于 \(x\) 的多项式。
若 \(X_0\) 可逆,且 \(f(X)\) 存在,则
这个可以通过组合数学方法证明,证明不难。
多项式牛顿迭代
这个东西可以推出很多式子。
考虑方程 \(G(X)\equiv 0\pmod{x^n}\)。如果我们已知 \(G(X)\equiv 0\pmod{x^{n/2}}\) 的解 \(X_0\),那么可以根据如下公式得到原方程的一组解 \(X\):
证明:将 \(G(X)\) 在 \(X_0\) 处展开:
令 \(X\equiv X_0\pmod {x^{n/2}}\),那么和式只有前两项有用,由此可以推出上式。不难说明得到的 \(X\) 是满足 \(X\equiv X_0\pmod{x^{n/2}}\) 的唯一解。
一般的,我们容易知道方程解的常数项,于是可以根据常数项递推出整个解。
求逆
考虑函数 \(G(X)=\frac{1}{X}-F\),那么方程 \(G(X)\equiv 0\) 的解就是 \(F\) 的乘法逆。直接带入 Newton's method 即可得到倍增式子:
时间复杂度 \(T(n)=T(\frac{n}{2})+O(n\log n)\),易得 \(T(n)=O(n\log n)\)。其中初值 \([x^0]X=([x^0]F)^{-1}\)
ln
已知 \(X\),欲求 \(\ln(X)\)。由链式法则:
因此
exp
考虑函数 \(G(X)=\ln(X)-F\),那么 \(G(X)\equiv 0\) 的解就是 \(\exp(F)\)。带入 Newton's method:
初值 \([x^0]X=1\) 由定义给出。
波斯坦-茉莉(Bostan-Mori)
Bostan-Mori 可以在 \(O(n\log n\log m)\) 的复杂度内提取 \([x^m]\frac{P(x)}{Q(x)}\),其中 \(P(x),Q(x)\) 是次数不超过 \(n\) 的多项式,\(m\) 是一个很大的数。
具体怎么做的呢?考虑将分式上下同时乘以 \(Q(-x)\),不难发现 \(Q(x)Q(-x)\) 只剩偶数项,所以式子可以表示如下:
此时按照 \(m\) 的奇偶性把 \(H_0(x^2),xH_1(x^2)\) 扔掉一项即可,\(m\) 大小会减半。