组合数学(一)容斥原理、二项式反演与第二类斯特林数
二项式反演
记 $f_n$ 表示恰好使用 $n$ 个不同元素形成特定结构的方案数,$g_n$ 表示从 $n$ 个不同元素中选出 $i\geq 0$ 个元素形成特定结构的总方案数。
若已知 $f_n$ 求 $g_n$,那么显然有:
若已知 $g_n$ 求 $f_n$,则被称为 二项式反演,公式为:
推导
对右式代入 $g_n = \sum_{i=0}^{n} \binom{n}{i}f_i$,得到
交换 $i$ 和 $j$ 的枚举顺序,得到
由于 $\binom{n}{i} \binom{i}{j} = \binom{n}{j} \binom{n-j}{i-j}$。这个很好理解,相当于是 $n$ 里取 $i$ 个,再 $i$ 里取 $j$ 个。现在是直接取 $j$ 个,然后从剩下的 $n-j$ 个里取剩下的 $i-j$ 个。总之得到
令 $k = i - j$,则 $i = k+ j$,上式转换为:
当且仅当 $n=j$ 时不为 $0$
证毕
第二类斯特林数(Stirling Number)
第二类斯特林数 $S(n,k)$ 表示将 $n$ 个两两不同的元素,划分为 $k$ 个互不区分的非空子集的方案数。
递推式
考虑用组合意义来证明
当我们插入一个新元素时,有两种方案:
将新元素单独放入一个子集,有 $S(n-1, k-1)$ 种方案
将新元素放入一个现有的非空子集,有 $kS(n-1, k)$ 种方案
相加即得
通项公式
使用容斥原理证明该公式。设将 $n$ 个两两不同的元素,划分到 $i$ 个两两不同的集合(允许空集)的方案数为 $G_i$, 将 $n$ 个两两不同的元素,划分到 $i$ 个两两不同的非空集合(不允许空集)的方案数为 $F_i$
根据定义,有
根据二项式反演,有:
而第二类斯特林数要求的集合之间是互不区分的,因此 $F_i$ 是 $S(n, i)$ 的 $i!$ 倍,所以:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不会魔法的小圆!