多项式全家桶
总是忘记多项式板子。。。
这里推一下柿子方便记忆
一些规定
本文中的
×
\times
×\times
皆为卷积,表示
(
A
×
B
)
i
=
∑
j
+
k
=
i
A
j
×
B
k
(A\times B)_i=\sum_{j+k=i}A_j\times B_k
(A×B)i=∑j+k=iAj×Bk
未特殊说明的话都在 m o d 998244353 \mod 998244353 mod998244353意义下
FFT,NTT,MTT
略
INV
多项式求逆
已知函数 f f f,求函数 g g g满足 f × g ≡ 1 m o d x n f\times g\equiv 1\mod x^n f×g≡1modxn
考虑倍增
假设已经求出函数 h h h满足 f × h ≡ 1 m o d x n / 2 f\times h\equiv 1\mod x^{n/2} f×h≡1modxn/2
g − h ≡ 0 m o d x n / 2 g-h\equiv 0\mod x^{n/2} g−h≡0modxn/2
两边同时平方
g 2 − 2 g h + h 2 ≡ 0 m o d x n g^2-2gh+h^2\equiv 0\mod x^n g2−2gh+h2≡0modxn
至于为什么可以这么做,考虑函数 A ≡ 0 m o d x n A\equiv 0\mod x^n A≡0modxn,那么 ∀ i ∈ [ 0 , n ) \forall i\in[0,n) ∀i∈[0,n), A i = 0 A_i=0 Ai=0
所以 A 2 A^2 A2中 ∀ i ∈ [ 0 , 2 n ) , A i 2 = 0 \forall i\in[0,2n),A^2_i=0 ∀i∈[0,2n),Ai2=0
两边同时乘以 f f f
g − 2 h + h 2 f ≡ 0 m o d x n g-2h+h^2f\equiv 0\mod x^n g−2h+h2f≡0modxn
g = 2 h − h 2 f g=2h-h^2f g=2h−h2f
LN
多项式求 ln \ln ln
已知函数 f ( x ) f(x) f(x),求函数 g ( x ) g(x) g(x)满足 g ( x ) ≡ ln f ( x ) m o d x n g(x)\equiv \ln f(x)\mod x^n g(x)≡lnf(x)modxn
需要特殊说明的是, g g g的常数项必须为 1 1 1
ln ′ ( x ) = 1 x \ln' (x)=\frac{1}{x} ln′(x)=x1
ln ′ ( f ( x ) ) = f ′ ( x ) f ( x ) \ln'(f(x))=\frac{f'(x)}{f(x)} ln′(f(x))=f(x)f′(x)
链式求导
之后求积分
EXP
多项式求 exp \exp exp
已知函数 f f f,求函数 g g g满足 g ≡ e f m o d x n g\equiv e^f\mod x^n g≡efmodxn
需要特殊说明的是, f f f的常数项必须为 0 0 0
泰勒展开
f ( x ) = f ( x 0 ) + ∑ i = 1 f ( i ) ( x 0 ) i ! × ( x − x 0 ) i f(x)=f(x_0)+\sum_{i=1}\frac{f^{(i)}(x_0)}{i!}\times (x-x_0)^i f(x)=f(x0)+i=1∑i!f(i)(x0)×(x−x0)i
将 f ( x ) f(x) f(x)在 x 0 x_0 x0处泰勒展开,即构造一个函数,使他在 x 0 x_0 x0处的任意阶导数等于 f ( x ) f(x) f(x)相同
牛顿迭代
已知函数 f f f,求函数 g g g满足 f ( g ( x ) ) ≡ 0 m o d x n f(g(x))\equiv 0 \mod x^n f(g(x))≡0modxn
考虑倍增
假设已知函数 h h h满足 f ( h ( x ) ) ≡ 0 m o d x n / 2 f(h(x))\equiv 0\mod x^{n/2} f(h(x))≡0modxn/2
将 f f f在 h ( x ) h(x) h(x)处泰勒展开
f ( g ( x ) ) = f ( h ( x ) ) + ∑ i = 1 f ( i ) ( h ( x ) ) i ! × ( g ( x ) − h ( x ) ) i f(g(x))=f(h(x))+\sum_{i=1}\frac{f^{(i)}(h(x))}{i!}\times (g(x)-h(x))^i f(g(x))=f(h(x))+i=1∑i!f(i)(h(x))×(g(x)−h(x))i
显然, f ( g ( x ) ) ≡ 0 m o d x n / 2 f(g(x))\equiv 0 \mod x^{n/2} f(g(x))≡0modxn/2
所以, g ( x ) ≡ h ( x ) m o d x n / 2 g(x)\equiv h(x)\mod x^{n/2} g(x)≡h(x)modxn/2
所以 ∀ i > 1 , ( g ( x ) − h ( x ) ) i ≡ 0 m o d x n \forall i>1,(g(x)-h(x))^i\equiv 0\mod x^n ∀i>1,(g(x)−h(x))i≡0modxn
所以 f ( g ( x ) ) ≡ f ( h ( x ) ) + f ′ ( h ( x ) ) × ( g ( x ) − h ( x ) ) ≡ 0 m o d x n f(g(x))\equiv f(h(x))+f'(h(x))\times (g(x)-h(x))\equiv 0\mod x^n f(g(x))≡f(h(x))+f′(h(x))×(g(x)−h(x))≡0modxn
g ( x ) ≡ h ( x ) − f ( h ( x ) ) f ′ ( h ( x ) ) m o d x n g(x)\equiv h(x)-\frac{f(h(x))}{f'(h(x))}\mod x^n g(x)≡h(x)−f′(h(x))f(h(x))modxn
求EXP
两边同时取 ln \ln ln
ln ( g ( x ) ) ≡ f ( x ) m o d x n \ln(g(x))\equiv f(x)\mod x^n ln(g(x))≡f(x)modxn
设 G ( g ( x ) ) = ln ( g ( x ) ) − f ( x ) m o d x n G(g(x))=\ln(g(x))-f(x)\mod x^n G(g(x))=ln(g(x))−f(x)modxn
套牛顿迭代
假设已经求出 G ( h ( x ) ) ≡ 0 m o d x n / 2 G(h(x))\equiv 0\mod x^{n/2} G(h(x))≡0modxn/2
g ( x ) = h ( x ) − G ( h ( x ) ) G ′ ( h ( x ) ) g(x)=h(x)-\frac{G(h(x))}{G'(h(x))} g(x)=h(x)−G′(h(x))G(h(x))
h ( x ) h(x) h(x)是自变量, f ( x ) f(x) f(x)与他无关,算常量
G ′ ( h ( x ) ) = 1 h ( x ) G'(h(x))=\frac{1}{h(x)} G′(h(x))=h(x)1
g = h × ( 1 − ln h + f ) g=h\times (1-\ln h+f) g=h×(1−lnh+f)
多项式除法与取模
代填