定义
第二类斯特林数{nk}表示将 n 个两两不同的元素划分为 k 个互不区分的非空子集的方案数。
递推式
{nk}={n−1k−1}+k∗{n−1k}
类似于组合数的递推式,我们考虑加入一个新元素后子集个数达到 k 的时候,它的方案数就等于这个元素自己分到一个新子集的方案数,即 {n−1k−1} ,加上把它分到之前已有的集合中的方案数,即 k∗{n−1k} 。
通项公式
{nk}=i=0∑ki!(k−i)!(−1)k−iin
证明:设 Gj 表示将 n 个两两不同的元素划分为 j 个相互区分的子集**(可以为空)的方案数,Fj 表示将 n 个两两不同的元素划分为 k 个相互区分的非空子集**的方案数,所以有:
Gj=ij
Gj=i=0∑j(ij)Fi
根据二项式反演可得:
Fj=i=0∑j(−1)j−i(ij)Gi
=i=0∑j(−1)j−i(ij)in
=i=0∑ji!(j−i)!j!(−1)j−iin
考虑 Fj 因为和斯特林数的区别只有 Fj 区分子集,所以 Fj 正好为斯特林数的 j!倍,即
{nk}=k!Fk=i=0∑ki!(k−i)!(−1)k−iin