拉格朗日反演学习笔记

拉格朗日反演

复合

定义形式幂级数 \(F(x),G(x)\)复合为:\(F\circ G=F(G(x))=\sum_{i=0}([x^i]F(x))G(x)^i\)
上式有定义(收敛)当且仅当 \(F\) 有限(多项式)或者 \(G\) 的常数项为 \(0\)

【模板】多项式复合函数
存在厉害的 \(O((n\log n)^{1.5})\) 做法。
但是更为简单的做法是 \(O(n^2+n\sqrt n \log n)\) 的分块暴力(跑得据说比实现不精细的 \(O((n\log n)^{1.5})\) 快)。

复合逆

形式幂级数 \(F(x),G(x)\) 常数项均为 \(0\),且一次项不为 \(0\)

\(G\circ F=x\),则有 \(F\circ G=x\),称 \(F,G\) 互为复合逆

\(G\circ F=x\),则 \(F\circ G=x\)

证明:

首先,满足 \(F\circ H=x\) 且常数项为 \(0\),一次项不为 \(0\) 的多项式 \(H\) 一定存在。

那么 \(G(F(x))=x,F(H(x))=x\)

\(G(F(H(x)))=G(x),G(F(H(x)))=H(x)\)

\(G(x)=H(x)\),证毕。

事实上,常数项均为 \(0\),且一次项不为 \(0\) 的多项式构成群。

拉格朗日反演的多种形式

若幂级数 \(F(x),G(x)\) 常数项均为 \(0\),一次项不为 \(0\),且 \(F,G\) 互为复合逆,\(n,k\in \Z\)

最初的形式:

\[[x^n]F^k(x)=\frac k n[x^{-k}]G^{-n}(x) \]

进行简单的变换,一般使用的形式:

\[[x^n]F^k(x)=\frac k n[x^{n-k}](\frac x{G(x)})^{n} \]

\(H\) 是一个一般的形式幂级数,将形式 2 线性组合起来,得到扩展拉格朗日反演:

\[[x^n]H(F(x))=\frac 1 n[x^{n-1}]H'(x)(\dfrac{x}{G(x)})^n \]

以及 EI 提出规避求 \(n\) 的逆与对 \(H\) 求导的另类拉反:

\[[x^n]F^k(x)[x^{n-k}]G'(x)(\frac{x}{G(x)})^{n+1}\\ [x^n]H(F(x))=[x^n]H(x)G'(x)(\frac{x}{G(x)})^{n+1} \]

证明

\[G(F(x))=x\\ G(F(x))^k=x^k\\ (G^k)'(F)\times F'(x)=kx^{k-1}\\ \sum_{i=0}iG^k[i]F^{i-1}F'=kx^{k-1}\\ [x^{-1}]\sum_{i=0}iG^k[i]F^{i-n-1}F'=[x^{-1}]kx^{k-1}F^{-n}\\ \sum_{i=0}iG^k[i][i-n-1=-1]=k[x^{-k}]F^{-n}\\ nG^k[n]=k[x^{-k}]F^{-n}\\ [x^n]G^k(x)=\frac k n[x^{-k}]F^{-n}(x) \]

手动求解复合逆

对于一个封闭形式的幂级数,例如 \(\ln(1+2x)\),我们直接复合上复合逆解方程就行。

对于我们仅有一个方程(不含微分)的幂级数,我们在方程的一边留下一个单项 \(x\),另一边所有的 \(F\) 换成 \(x\) 即为其复合逆。

小试牛刀

\(n\) 个点有标号无根树数量。是的,是 \(n^{n-2}\),请使用拉反解决好吗。

\(F(x)\) 表示答案的 EGF,那么有 \(F(x)=x\exp(F(x))\)
\(F(x)\) 的复合逆即为 \(G(x)=\dfrac{x}{e^x}\)

直接使用拉反:

\[[x^n]F(x)=[x^{n-1}]\dfrac 1 n(\dfrac{x}{G(x)})^n\\ [x^n]F(x)=[x^{n-1}]\dfrac 1 ne^{nx} \]

得到答案 \(n^{n-2}\)


求解 \([x^n]C^k(x)\),其中 \(C(x)\) 为卡特兰数。

考虑卡特兰数生成函数方程:\(C(x)=xC^2(x)+1\)
由于 \([x^0]C(x)\)\(0\),其没有复合逆,我们构造其去掉常数项的形式幂级数 \(B(x)=C(x)-1\),那么 \(B(x)=x(B(x)+1)^2\)

所求即为 \([x^n](B(x)+1)^k\),令 \(H(x)=(x+1)^k\),则所求为 \([x^n]H\circ B\)
计算 \(B\) 的复合逆 \(A\)\(A=\dfrac{x}{(x+1)^2}\)
使用扩展拉反:

\[[x^n]H(B(x))=\dfrac 1 n[x^{n-1}]H'(x)(\dfrac{x}{A(x)})^n\\ [x^n]H(B(x))=\dfrac 1 n[x^{n-1}]k(x+1)^{k-1}(x+1)^{2n}\\ [x^n]H(B(x))=\dfrac{k}{n}\dbinom{2n+k-1}{n-1} \]


ABC222H,我们忽略组合计数,得到生成函数方程的部分。
\([x^n]F\),满足 \(F=x(F+(F+1)^2)^2\)

计算其复合逆 \(G=\dfrac{x}{(x+(x+1)^2)^2}\)
使用拉反:

\[[x^n]F(x)=\dfrac 1 n[x^{n-1}](\dfrac{x}{G(x)})^n\\ [x^n]F(x)=\dfrac 1 n[x^{n-1}](x+(x+1)^2)^{2n}\\ [x^n]F(x)=\dfrac 1 n\sum_{i=0}^{n-1}\dbinom{2n}{i}[x^{n-1-i}](x+1)^{2(2n-i)}\\ [x^n]F(x)=\dfrac 1 n\sum_{i=0}^{n-1}\dbinom{2n}{i}\dbinom{4n-2i}{n-1-i} \]


一个更复杂的具体应用是广义二项级数,可以参考:广义二项级数与广义指数级数

\(H\) 求导很痛苦的情况下,可以考虑使用另类拉反。但好像 EI 认为另类拉反更大的作用是规避了求 \(n\) 的逆。

posted @ 2022-09-26 23:38  juju527  阅读(516)  评论(1编辑  收藏  举报