多项式复合逆和拉格朗日反演
引入
设有多项式 F ( x ) , G ( x ) F(x),G(x) F(x),G(x),满足常数项为 0 0 0 且一次项不为 0 0 0
如果 G ( F ( x ) ) = x G(F(x))=x G(F(x))=x ,则有 F ( G ( x ) ) = x F(G(x))=x F(G(x))=x 。此时,称 F F F 和 G G G 互为复合逆。
拉格朗日反演及其扩展用于求一类 G ( F ( x ) ) = H ( x ) G(F(x))=H(x) G(F(x))=H(x) 的问题,其中 G ( x ) , H ( x ) G(x),H(x) G(x),H(x) 为已知多项式函数, F ( x ) F(x) F(x) 为待求函数。但其只能在 O ( n log n ) O(n \log n) O(nlogn) 的时间内求得 F ( x ) F(x) F(x) 的某一项系数。
拉格朗日反演
若
G
(
F
(
x
)
)
=
x
G(F(x))=x
G(F(x))=x ,则有
[
x
n
]
F
(
x
)
=
1
n
[
x
−
1
]
1
G
n
(
x
)
[
x
n
]
H
(
F
(
x
)
)
=
1
n
[
x
−
1
]
H
′
(
x
)
1
G
n
(
x
)
[x^n]F(x)=\frac{1}{n}[x^{-1}]\frac{1}{G^n(x)} \\ [x^n]H(F(x))=\frac{1}{n}[x^{-1}]H'(x)\frac{1}{G^n(x)}
[xn]F(x)=n1[x−1]Gn(x)1[xn]H(F(x))=n1[x−1]H′(x)Gn(x)1
这个
[
x
−
1
]
[x^{-1}]
[x−1] 是什么东西,我学的形式幂级数没有
x
−
1
x^{-1}
x−1 项啊。
我们把右边的式子乘以
x
n
x^n
xn ,系数取
[
x
n
−
1
]
[x^{n-1}]
[xn−1] ,那么
[
x
n
]
F
(
x
)
=
1
n
[
x
n
−
1
]
(
x
G
(
x
)
)
n
[
x
n
]
H
(
F
(
x
)
)
=
1
n
[
x
n
−
1
]
H
′
(
x
)
(
x
G
n
(
x
)
)
n
[x^n]F(x)=\frac{1}{n}[x^{n-1}](\frac{x}{G(x)})^n \\ [x^n]H(F(x))=\frac{1}{n}[x^{n-1}]H'(x)(\frac{x}{G^n(x)})^n
[xn]F(x)=n1[xn−1](G(x)x)n[xn]H(F(x))=n1[xn−1]H′(x)(Gn(x)x)n
证明
G ( F ( x ) ) = x ∑ i = 1 ∞ a i F i = x \begin{aligned} G(F(x))&=x \\ \sum_{i=1}^{\infty} a_iF^i&=x \end{aligned} G(F(x))i=1∑∞aiFi=x=x
两边同时对
x
x
x 求导
∑
i
=
1
∞
i
a
i
F
i
−
1
F
′
=
1
\sum_{i=1}^{\infty} ia_iF^{i-1}F'=1 \\
i=1∑∞iaiFi−1F′=1
两边同时除以
F
n
F^n
Fn ,取
x
−
1
x^{-1}
x−1 的系数
[
x
−
1
]
∑
i
=
1
∞
i
a
i
F
i
−
n
−
1
F
′
=
[
x
−
1
]
1
F
n
[x^{-1}]\sum_{i=1}^{\infty}ia_iF^{i-n-1}F'=[x^{-1}]\frac{1}{F^n}
[x−1]i=1∑∞iaiFi−n−1F′=[x−1]Fn1
观察左边的式子
i ≠ n i\ne n i=n 时, F i − n − 1 F ′ = 1 i − n ( F i − n ) ′ F^{i-n-1}F'=\frac{1}{i-n}(F^{i-n})' Fi−n−1F′=i−n1(Fi−n)′ 。我们知道一个任意一个多项式求导 x − 1 x^{-1} x−1 的系数都为 0 0 0 。所以 [ x − 1 ] i a i F i − n − 1 F ′ = 0 [x^{-1}]ia_iF^{i-n-1}F'=0 [x−1]iaiFi−n−1F′=0
i = n i=n i=n 时, F − 1 F ′ = a 1 + 2 a 2 x + 3 a 3 x 2 + . . . a 1 x + 2 a 2 x 2 + 3 a 3 x 3 + . . . = a 1 + 2 a 2 x + . . . a 1 x ⋅ 1 1 + ( a 2 a 1 x + a 3 a 2 x + . . . ) F^{-1}F'=\frac{a_1+2a_2x+3a_3x^2+...}{a_1x+2a_2x^2+3a_3x^3+...}=\frac{a_1+2a_2x+...}{a_1x}\cdot\frac{1}{1+(\frac{a_2}{a_1}x+\frac{a_3}{a_2}x+...)} F−1F′=a1x+2a2x2+3a3x3+...a1+2a2x+3a3x2+...=a1xa1+2a2x+...⋅1+(a1a2x+a2a3x+...)1 。
左边的分母 1 + ( a 2 a 1 x + a 3 a 2 x + . . . ) 1+(\frac{a_2}{a_1}x+\frac{a_3}{a_2}x+...) 1+(a1a2x+a2a3x+...) 是可逆的,且其逆的常数项的为 1 1 1 。又因为 [ x − 1 ] a 1 + 2 a 2 x + . . . a 1 x = 1 [x^{-1}]\frac{a_1+2a_2x+...}{a_1x}=1 [x−1]a1xa1+2a2x+...=1 ,所以 [ x − 1 ] F − 1 F ′ = 1 [x^{-1}]F^{-1}F'=1 [x−1]F−1F′=1 。
所以原式可以化成
n
a
n
=
[
x
−
1
]
1
F
n
a
n
=
1
n
[
x
−
1
]
1
F
n
\begin{aligned} na_n&=[x^{-1}]\frac{1}{F^n} \\ a_n&=\frac{1}{n}[x^{-1}]\frac{1}{F^n} \end{aligned}
nanan=[x−1]Fn1=n1[x−1]Fn1
发现
F
F
F 没有逆,而且形式幂级数也没有
x
−
1
x^{-1}
x−1 。则把给右边乘以
x
n
x^n
xn ,再取
x
n
−
1
x^{n-1}
xn−1 的系数就是
a
n
=
1
n
[
x
n
−
1
]
(
x
F
)
n
[
x
n
]
G
=
1
n
[
x
n
−
1
]
(
x
F
)
n
a_n=\frac{1}{n}[x^{n-1}](\frac{x}{F})^n \\ [x^n]G=\frac{1}{n}[x^{n-1}](\frac{x}{F})^n
an=n1[xn−1](Fx)n[xn]G=n1[xn−1](Fx)n
得证。