我承认,标题有些谜语人。主要是怕搜索引擎乱抓导致黑历史暴露。
众所周知 n 个点的无根有标号树有 nn−2。
众所周知这个结论的证法很多,其中一个是使用拉格朗日反演。
设有标号有根树的 EGF 为 T(x),有方程 T=x(∑i≥0Tii!)=xexpT。
设 G(x)=x/expx,则 G(T)=x,即 G 是 T 的复合逆。
由反演,[xn]T=[xn]x(x/G)n+1G′=nn−1/n!。
得到有根树为 nn−1,则无根树为 nn−2。
众所周知将 m 个大小为 a1,…,am 的树连成一个 n 个点无根树的方案数为 nm−2∏ai。
众所周知这个结论的证法很多,其中一个是使用扩展拉格朗日反演。
下尝试用扩展拉格朗日反演证一下这个结论 当然是不会去证扩展拉格朗日反演的。
实际上众所周知,扩展拉格朗日反演与 prufer 序列和矩阵树定理关系都非常密切,所以三种证法本质等价(瞎说)。
首先给出一些记号。
下将 G(x1,x2,…,xm) 简记成 G(x)。
下将 xk11xk22…xkmm 简记成 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]−xj∂Gi∂xjGi(x)∣∣
∣∣∣∣
∣∣
注意字体与其代表的含义,比如 Gk 实际上是 Gk11Gk22…Gkmm。
现在来证明,首先转化成算有根树除以 m。
记 Fi 表示以第 i 种点为根的 EGF,此时一条边会产生两端 a 乘积的贡献,因此得到方程:
Fi=xiexp(m∑j=1aiajFj)
也即 Gi=exp(∑mj=1aiajxj)。
最后每种点仅出现一次,那么取 [x](∑mi=1Fi) 即为答案。使用反演:
[x](m∑i=1Fi)=[x](m∑i=1xi)×(m∏i=1exp(m∑j=1aiajxj))×∣∣
∣∣∣∣
∣∣[i=j]−xjaiajexp(∑mj=1aiajxj)exp(∑mj=1aiajxj)∣∣
∣∣∣∣
∣∣=[x](m∑i=1xi)×exp(m∑i=1m∑j=1aiajxj)×∣∣∣∣[i=j]−aiajxj∣∣∣∣
搞一搞行列式:
∣∣
∣
∣
∣
∣∣1−a21x1−a1a2x2…−a1anxn−a2a1x11−a22x2…−a2anxn⋮⋮⋱⋮−ana1x1−ana2x2…1−a2nxn∣∣
∣
∣
∣
∣∣=∣∣
∣
∣
∣
∣∣1−a21x1−a1a2x2…−a1anxn−a2/a11…0⋮⋮⋱⋮−an/a10…1∣∣
∣
∣
∣
∣∣=∣∣
∣
∣
∣
∣∣1−∑mi=1a2ixi−a1a2x2…−a1anxn01…0⋮⋮⋱⋮00…1∣∣
∣
∣
∣
∣∣
将结果 1−∑mi=1a2ixi 再代回去:
[x](m∑i=1xi)×(m∏j=1exp(najxj))×(1−m∑i=1a2ixi)
如果最后一项取 1,则得到 nm−1(∏mi=1ai)(∑mi=11/ai)。
否则,得到 −nm−2(∏mi=1ai)(∑mi=1∑mj=1,j≠iaj/ai)=−nm−2(∏mi=1ai)(∑mi=1n/ai−m)。
因此得到最终结果 mnm−2(∏mi=1ai)。
别忘了除以 m,得到形式 nm−2(∏mi=1ai),证完了。
这还要搞行列式,和矩阵树定理没啥差别啊。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现