牛顿迭代相关
(具体证明等请看 OIwiki)
描述
- 给定多项式 \(g(x),f(x)\) 满足:
\[g(f(x))\equiv 0\pmod {x^n}
\]
- 求出模 \(x^n\) 意义下的 \(f(x)\)
公式表现形式
- 假设已经求出了模 \(x^{\lfloor \frac{n}{2}\rfloor}\) 意义下的解 \(f_0\) ,那么
\[f(x)\equiv f_0(x)-\frac{g(f_0(x))}{g'(f_0(x))}\pmod {x^n}
\]
- 这个 \(g\) 需要我们构造
多项式求逆
设常数函数 \(h(x)\) ,求它在模 \(x^n\) 意义下的逆函数 \(f(x)\)
\[g(f(x))=f^{-1}(x)-h(x)
\]
\[f(x)\equiv f_0(x)-\frac{f_0^{-1}(x)-h(x)}{-f_0^{-2}(x)} \pmod {x^n}
\]
\[f(x)=f_0(x)(2-h(x)f_0(x))
\]
- 注意这里 \(h(x)\) 是个常函数,所以求导后就没了
- 参考代码
多项式开根
设常数函数 \(h(x)\) ,求它在模意义下的开根 \(f(x)\)
\[g(f(x))\equiv f^2(x)-h(x)\pmod {x^n}
\]
\[f(x)=f_0(x)-\frac{f_0^2(x)-h(x)}{f_0(x)}
\]
\[f(x)=\frac{f_0(x)+h(x)+f_0^{-1}(x)}{2}
\]
多项式 exp
设常数函数 \(h(x)\) ,求它在模意义下的 exp \(f(x)\)
\[g(f(x))\equiv \ln(f(x))-h(x)
\]
\[f(x)=f_0(x)[1-\ln(f(x))+h(x)]
\]
多项式 ln
- 先求导,再积分
\[\frac{d \ln(f(x))}{dx}=\frac{f'(x)}{f(x)}
\]
\[\int \frac{f'(x)}{f(x)}dx=\ln(f(x))
\]
- 积分和求导都是 \(O(n)\) 的,所以总复杂度为 \(O(n\log n)\)
- 参考代码
值得一提的是 \(\ln,\exp\) 有 \(n^2\) 推法,具体见:多项式 lnexp 暴力解法