拉格朗日反演学习笔记

死前学一下。

基本形式与证明

两个形式:拉格朗日隐函数定理与拉格朗日反演公式

拉格朗日隐函数定理-LIFT:许多组合问题中的生成函数 F 满足某种自递推的关系 G,此时可以应用该定理。

给定形式幂级数 G,存在唯一的 F 使得 F=zG(F)。这样的 F 满足:

[zn]F=1n[zn1]Gn

其中 nZ+。它的一个扩展形式是:

[zn]H(F)=1n[zn]zHGn

拉格朗日反演公式:简单来说是一种求算复合逆的工具。

假设 G 存在复合逆(当且仅当 [z0]G=0[z1]G0),则对于 G 的复合逆 F,有:

F=zFz=z(FG(F))

即令 R=zG 时,F=zR(F)。所以由 LIFT 可得:

[zn]F=1n[zn]z(zG)n=1n[z1]Gn

一般把它写成 n[zn]F=[z1]Gn。它同样具有类似的扩展形式:

[zn]H(F)=1n[z1]HGn

A. 代数推导

注意拉格朗日反演公式拉格朗日隐函数定理实际上是等价的(包括扩展形式),只需要简单地将一个中的 G1 用另一个中的 zG2 代换即可,因此证明时也只需证明一个。(扩展)拉格朗日反演公式的代数证明比较简单,下面给出:

引理:对于有复合逆的幂级数 F[z1]FFk=[k=1]

  • k1FFk=(1k+1Fk+1),而任意幂级数求导不产生 1 次项。

  • k=1[z1]FF1=[z0]FF/z=1

不妨考虑扩展形式中 H(z)=zk(k0) 时的情形,其他幂级数作为其线性组合容易一并导出。即要证 n[zn]Fk=[z1]kzk1Gn=k[zk]Gn,下证:

k[zk]Gn=[z1]Gn(kzk1)=[z1]Gn(F(G)k)=[z1]iGGin([zi](Fk))=[z1]i0GGi1n(i[zi]Fk)=n[zn]Fk

证毕。

B. 组合意义

这里证明的是拉格朗日隐函数定理,这背后的深刻原因是因为 xyix 只写了这个。

将涉及到的函数视为 EGF。根据 F=zG(F) 可以这样构造:如果某节点 u 的度数(即直接子节点数)为 t,则令其权值 w(u)=[ztt!]G,而令一棵树的权值为所有节点权值的乘积,那么所有树的生成函数为 F。接下来指定根节点 0,使 0 的权重是 [ztt!]H,其中 t 仍然表示度数;0 下面的子树按照上述方法计算权重。则左式 [zn]H(F) 就是所有大小为 n+1 的这样的树的权值和。计数这样的树,可以采用 Prufer 序列。假设其中有 mi 个度数为 i 的非 0 点,0 的度数为 k ,这样的树有

(n1)!(k1)!imi!(nm1,m2,)

注意到并不需要枚举有根树 Prufer 序列的最后一位,因为根已经确定为 0

右式可以改写为 1n[zn](zH)Gn。忽略掉前面的 1n,它的组合意义比较简单,它是一个长度为 n,值域为 [0,n] 的序列,其中 0 的出现次数为 t 时权值为 t[zt]H,其他元素则为 [zt]G。和上面同样,假设其中有 miik0,这样的序列有

n!k!imi!(nm1,m2,)

这么多。注意到当枚举的 km 序列均相同时,右式对应的序列的权值恰好是左式对应树的 k 倍,比较两式,并对所有可能的 km 序列求和即得证。

应用

考虑到我刚学会还是咕一会。

posted @   kyEEcccccc  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示