拉格朗日反演
复合
定义形式幂级数 F(x),G(x) 的复合为:F∘G=F(G(x))=∑i=0([xi]F(x))G(x)i。
上式有定义(收敛)当且仅当 F 有限(多项式)或者 G 的常数项为 0。
【模板】多项式复合函数
存在厉害的 O((nlogn)1.5) 做法。
但是更为简单的做法是 O(n2+n√nlogn) 的分块暴力(跑得据说比实现不精细的 O((nlogn)1.5) 快)。
复合逆
形式幂级数 F(x),G(x) 常数项均为 0,且一次项不为 0,
若 G∘F=x,则有 F∘G=x,称 F,G 互为复合逆
若 G∘F=x,则 F∘G=x
证明:
首先,满足 F∘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∈Z。
最初的形式:
[xn]Fk(x)=kn[x−k]G−n(x)
进行简单的变换,一般使用的形式:
[xn]Fk(x)=kn[xn−k](xG(x))n
H 是一个一般的形式幂级数,将形式 2 线性组合起来,得到扩展拉格朗日反演:
[xn]H(F(x))=1n[xn−1]H′(x)(xG(x))n
以及 EI 提出规避求 n 的逆与对 H 求导的另类拉反:
[xn]Fk(x)[xn−k]G′(x)(xG(x))n+1[xn]H(F(x))=[xn]H(x)G′(x)(xG(x))n+1
证明
G(F(x))=xG(F(x))k=xk(Gk)′(F)×F′(x)=kxk−1∑i=0iGk[i]Fi−1F′=kxk−1[x−1]∑i=0iGk[i]Fi−n−1F′=[x−1]kxk−1F−n∑i=0iGk[i][i−n−1=−1]=k[x−k]F−nnGk[n]=k[x−k]F−n[xn]Gk(x)=kn[x−k]F−n(x)
手动求解复合逆
对于一个封闭形式的幂级数,例如 ln(1+2x),我们直接复合上复合逆解方程就行。
对于我们仅有一个方程(不含微分)的幂级数,我们在方程的一边留下一个单项 x,另一边所有的 F 换成 x 即为其复合逆。
小试牛刀
求 n 个点有标号无根树数量。是的,是 nn−2,请使用拉反解决好吗。
记 F(x) 表示答案的 EGF,那么有 F(x)=xexp(F(x))。
F(x) 的复合逆即为 G(x)=xex。
直接使用拉反:
[xn]F(x)=[xn−1]1n(xG(x))n[xn]F(x)=[xn−1]1nenx
得到答案 nn−2。
求解 [xn]Ck(x),其中 C(x) 为卡特兰数。
考虑卡特兰数生成函数方程:C(x)=xC2(x)+1。
由于 [x0]C(x) 非 0,其没有复合逆,我们构造其去掉常数项的形式幂级数 B(x)=C(x)−1,那么 B(x)=x(B(x)+1)2。
所求即为 [xn](B(x)+1)k,令 H(x)=(x+1)k,则所求为 [xn]H∘B。
计算 B 的复合逆 A,A=x(x+1)2。
使用扩展拉反:
[xn]H(B(x))=1n[xn−1]H′(x)(xA(x))n[xn]H(B(x))=1n[xn−1]k(x+1)k−1(x+1)2n[xn]H(B(x))=kn(2n+k−1n−1)
ABC222H,我们忽略组合计数,得到生成函数方程的部分。
求 [xn]F,满足 F=x(F+(F+1)2)2。
计算其复合逆 G=x(x+(x+1)2)2。
使用拉反:
[xn]F(x)=1n[xn−1](xG(x))n[xn]F(x)=1n[xn−1](x+(x+1)2)2n[xn]F(x)=1nn−1∑i=0(2ni)[xn−1−i](x+1)2(2n−i)[xn]F(x)=1nn−1∑i=0(2ni)(4n−2in−1−i)
一个更复杂的具体应用是广义二项级数,可以参考:广义二项级数与广义指数级数
在 H 求导很痛苦的情况下,可以考虑使用另类拉反。但好像 EI 认为另类拉反更大的作用是规避了求 n 的逆。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现