第二类斯特林数
定义
第二类斯特林数 S ( n , m ) S(n,m) S(n,m) 表示将 n n n 个不同的小球放到 m m m 个相同的盒子里的方案数。 S ( n , m ) S(n,m) S(n,m) 也可以用 { n m } \begin{Bmatrix} n \\ m\end {Bmatrix} { nm} 表示。
公式
递推公式: S ( n , m ) = S ( n − 1 , m − 1 ) + m S ( n − 1 , m ) S(n,m)=S(n-1,m-1)+mS(n-1,m) S(n,m)=S(n−1,m−1)+mS(n−1,m)。即考虑第 n n n 个球是单独新分到一个盒子或者和前面的球装在同个盒子里。如果是单独新分到一个盒子里,那么就是 S ( n − 1 , m − 1 ) S(n-1,m-1) S(n−1,m−1),如果和前面的球装在一起,也就是从 m m m 个盒子里选一个装,即 m S ( n − 1 , m − 1 ) mS(n-1,m-1) mS(n−1,m−1).
容斥原理:
S ( n , m ) = ∑ k = 0 m ( − 1 ) k ( m k ) ( m − k ) n m ! S(n,m)=\frac{\sum_{k=0}^m(-1)^k\binom{m}{k}(m-k)^n}{m!} S(n,m)=m!∑k=0m(−1)k(km)(m−k)n
即枚举空盒的数量 k k k,然后 m m m 个盒子里选出 k k k 个为空,剩下的随便放,因为盒子是相同的,所以要除以盒子数量的阶乘 m ! m! m!。
这个式子可以化为卷积形式:
S ( n , m ) = 1 m ! ∑ k = 0 m ( − 1 ) k ( m − k ) n ( k m ) S ( n , m ) = 1 m ! ∑ k = 0 m ( − 1 ) k ( m − k ) n m ! k ! ( m − k ) ! S ( n , m ) = ∑ k = 0 m ( − 1 ) k ( m − k ) n 1 k ! ( m − k ) ! S ( n , m ) = ∑ k = 0 m ( − 1 ) k k ! ⋅ ( m − k ) n ( m − k ) ! S(n,m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k(m-k)^n\binom{k}{m}\\ S(n,m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k(m-k)^n\frac{m!}{k!(m-k)!}\\ S(n,m)=\sum_{k=0}^{m}(-1)^k(m-k)^n\frac{1}{k!(m-k)!}\\ S(n,m)=\sum_{k=0}^{m}\frac{(-1)^k}{k!}\cdot\frac{(m-k)^n}{(m-k)!} S(n,m)=m!1k=0∑m(−1)k(m−k)n(mk)S(n,m)=m!1k<