「一个经典问题的另一个推导方法」

我承认,标题有些谜语人。主要是怕搜索引擎乱抓导致黑历史暴露。


众所周知 n 个点的无根有标号树有 nn2

众所周知这个结论的证法很多,其中一个是使用拉格朗日反演

设有标号有根树的 EGF 为 T(x),有方程 T=x(i0Tii!)=xexpT

G(x)=x/expx,则 G(T)=x,即 GT 的复合逆。

由反演,[xn]T=[xn]x(x/G)n+1G=nn1/n!

得到有根树为 nn1,则无根树为 nn2


众所周知将 m 个大小为 a1,,am 的树连成一个 n 个点无根树的方案数为 nm2ai

众所周知这个结论的证法很多,其中一个是使用扩展拉格朗日反演

下尝试用扩展拉格朗日反演证一下这个结论 当然是不会去证扩展拉格朗日反演的

实际上众所周知,扩展拉格朗日反演与 prufer 序列和矩阵树定理关系都非常密切,所以三种证法本质等价(瞎说)。


首先给出一些记号。

下将 G(x1,x2,,xm) 简记成 G(x)

下将 x1k1x2k2xmkm 简记成 xk

在多元 GF 下复合逆这一概念并不良定义。因此,取而代之的,我们定义一组树形复合方程

F1=x1G1(F1,F2,,Fm)=x1G1(F)F2=x2G2(F1,F2,,Fm)=x2G2(F)Fm=xmGm(F1,F2,,Fm)=xmGm(F)

树形复合方程确实和树有关系。

具体来说,我们所考虑的对象是有 m 种结点的有根树。则 Fi 可以看成以第 i 种结点为根时对应的有根树。

下当 A=(ai,j) 时将 detA 记成 ||ai,j||

给出定理:

[xk]H(F)=[xk]H(x)×Gk×||[i=j]xjGixjGi(x)||

注意字体与其代表的含义,比如 Gk 实际上是 G1k1G2k2Gmkm


现在来证明,首先转化成算有根树除以 m

Fi 表示以第 i 种点为根的 EGF,此时一条边会产生两端 a 乘积的贡献,因此得到方程:

Fi=xiexp(j=1maiajFj)

也即 Gi=exp(j=1maiajxj)

最后每种点仅出现一次,那么取 [x](i=1mFi) 即为答案。使用反演:

[x](i=1mFi)=[x](i=1mxi)×(i=1mexp(j=1maiajxj))×||[i=j]xjaiajexp(j=1maiajxj)exp(j=1maiajxj)||=[x](i=1mxi)×exp(i=1mj=1maiajxj)×||[i=j]aiajxj||

搞一搞行列式:

|1a12x1a1a2x2a1anxna2a1x11a22x2a2anxnana1x1ana2x21an2xn|=|1a12x1a1a2x2a1anxna2/a110an/a101|=|1i=1mai2xia1a2x2a1anxn010001|

将结果 1i=1mai2xi 再代回去:

[x](i=1mxi)×(j=1mexp(najxj))×(1i=1mai2xi)

如果最后一项取 1,则得到 nm1(i=1mai)(i=1m1/ai)

否则,得到 nm2(i=1mai)(i=1mj=1,jimaj/ai)=nm2(i=1mai)(i=1mn/aim)

因此得到最终结果 mnm2(i=1mai)

别忘了除以 m,得到形式 nm2(i=1mai),证完了。

这还要搞行列式,和矩阵树定理没啥差别啊。

posted @   Tiw_Air_OAO  阅读(546)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示