范德蒙德卷积

数学 / 组合数学

本地源文件:docs/math__combinatorics__vandermonde-convolution.md

范德蒙德卷积

引入

范德蒙德卷积是一种合并组合数的式子,主要应用于组合数学的公式推导.

范德蒙德卷积公式

𝑘∑𝑖=0(𝑛𝑖)(𝑚𝑘−𝑖)=(𝑛+𝑚𝑘)∑i=0k(ni)(mk−i)=(n+mk)

证明

考虑用二项式定理证明:

𝑛+𝑚∑𝑘=0(𝑛+𝑚𝑘)𝑥𝑘=(𝑥+1)𝑛+𝑚=(𝑥+1)𝑛(𝑥+1)𝑚=𝑛∑𝑟=0(𝑛𝑟)𝑥𝑟𝑚∑𝑠=0(𝑚𝑠)𝑥𝑠=𝑛+𝑚∑𝑘=0𝑘∑𝑟=0(𝑛𝑟)(𝑚𝑘−𝑟)𝑥𝑘∑k=0n+m(n+mk)xk=(x+1)n+m=(x+1)n(x+1)m=∑r=0n(nr)xr∑s=0m(ms)xs=∑k=0n+m∑r=0k(nr)(mk−r)xk

即有:

(𝑛+𝑚𝑘)=𝑘∑𝑟=0(𝑛𝑟)(𝑚𝑘−𝑟)(n+mk)=∑r=0k(nr)(mk−r)

若考虑其组合意义证明:

在一个大小为 𝑛 +𝑚n+m 的集合中取出 𝑘k 个数,可以等于把大小为 𝑛 +𝑚n+m 的集合拆成两个集合,大小分别为 𝑛n 与 𝑚m,然后从 𝑛n 中取出 𝑖i 个数,从 𝑚m 中取出 𝑘 −𝑖k−i 个数的方案数.由于我们有了对于 𝑖i 的枚举,于是只需要考虑一种拆法,因为不同的拆法之间是等价的.

推论

推论 1 及证明

𝑠∑𝑖=−𝑟(𝑛𝑟+𝑖)(𝑚𝑠−𝑖)=(𝑛+𝑚𝑟+𝑠)∑i=−rs(nr+i)(ms−i)=(n+mr+s)

证明与原公式证明相似.

推论 2 及证明

𝑛∑𝑖=1(𝑛𝑖)(𝑛𝑖−1)=(2𝑛𝑛−1)∑i=1n(ni)(ni−1)=(2nn−1)

根据基础的组合数学知识推导,有:

𝑛∑𝑖=1(𝑛𝑖)(𝑛𝑖−1)=𝑛−1∑𝑖=0(𝑛𝑖+1)(𝑛𝑖)=𝑛−1∑𝑖=0(𝑛𝑛−1−𝑖)(𝑛𝑖)=(2𝑛𝑛−1)∑i=1n(ni)(ni−1)=∑i=0n−1(ni+1)(ni)=∑i=0n−1(nn−1−i)(ni)=(2nn−1)

推论 3 及证明

𝑛∑𝑖=0(𝑛𝑖)2=(2𝑛𝑛)∑i=0n(ni)2=(2nn)

根据基础的组合数学知识推导,有:

𝑛∑𝑖=0(𝑛𝑖)2=𝑛∑𝑖=0(𝑛𝑖)(𝑛𝑛−𝑖)=(2𝑛𝑛)∑i=0n(ni)2=∑i=0n(ni)(nn−i)=(2nn)

推论 4 及证明

𝑚∑𝑖=0(𝑛𝑖)(𝑚𝑖)=(𝑛+𝑚𝑚)∑i=0m(ni)(mi)=(n+mm)

根据基础的组合数学知识推导,有:

𝑚∑𝑖=0(𝑛𝑖)(𝑚𝑖)=𝑚∑𝑖=0(𝑛𝑖)(𝑚𝑚−𝑖)=(𝑛+𝑚𝑚)∑i=0m(ni)(mi)=∑i=0m(ni)(mm−i)=(n+mm)

其中 (𝑛+𝑚𝑚)(n+mm) 是我们较为熟悉的网格图路径计数的方案数.所以我们可以考虑其组合意义的证明.

在一张网格图中,从 (0,0)(0,0) 走到 (𝑛,𝑚)(n,m) 共走 𝑛 +𝑚n+m 步.规定 (0,0)(0,0) 位于网格图左上角,其中向下走了 𝑛n 步,向右走了 𝑚m 步,方案数为 (𝑛+𝑚𝑚)(n+mm)

换个视角,我们将 𝑛 +𝑚n+m 步拆成两部分走,先走 𝑛n 步,再走 𝑚m 步,那么 𝑛n 步中若有 𝑖i 步向右,则 𝑚m 步中就有 𝑚 −𝑖m−i 步向右,故得证.

习题

参考资料与注释

  1. Vandermonde's Convolution Formula
本页面最近更新: 2026/1/7 08:56:54,更新历史 发现错误?想一起完善?在 GitHub 上编辑此页! 本页面贡献者:Tiphereth-A, ChungZH, tidongCrazy 本页面的全部内容在CC BY-SA 4.0SATA 协议之条款下提供,附加条款亦可能应用