含义
\(n\)个有区别的球放在\(m\)个相同的盒子内,要求盒子不为空的方案数
实际上也就是把数\(n\)拆成\(m\)个正整数和的方案数
记作\(S(n, m)\)
性质
- \(S(n, 0)=S(0, n)=0\),其中\(n \in N\)
- \(S(n, k)=0\),其中\(k>n>=1\)
- \(S(n, n)=S(n, 1)=1\),其中\(n>=1\)
等等......
求法
递推
\[S(n, m) = S(n - 1, m - 1) + S(n - 1, m) * m\],其中\(n>1,m>=1\)
解释:新开一盒子或者在原有盒子中选一个
公式
\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
证明
先考虑\(n\)个不同的球放在\(m\)个不同的盒子内没有无空盒限制的方案数
那么显然就是\(m^n\)
考虑容斥原理
总的\(\ -\ \)有大于等于一个空盒的方案\(\ +\ \)有大于等于两个个空盒的方案\(\ -\ \)有大于等于三个空盒的方案......
写出来就是
\[S(n, m)=\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
因为我们认为盒子有区别
\(C(m, k)\)就是把那\(k\)个空盒子选出来
其他的随便放
现在求出了\(n\)个不同的球放在\(m\)个不同的盒子内有无空盒限制的方案数
然而要求的是盒子无区别的
还要除以一个\(\frac{1}{m!}\)
就得到了那个公式
其他的一些东西
\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
假设\(n\)固定,那么预处理出\(C(m, k)\)就可以直接多项式卷积求出来所有的\(S(n,m)\)
考虑换一种形式
\[S(n, m)=\frac{1}{m!}\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^n\]
\[=\frac{1}{m!}\sum_{k=0}^{m}(-1)^k\frac{m!}{k!(m-k)!}(m-k)^n\]
\[=\sum_{k=0}^{m}\frac{(-1)^k}{k!}\frac{(m-k)^n}{(m-k)!}\]
这样就可以不用预处理组合数直接\(FFT\)求了
推论
- 因为\(S(m, m)=1\),所以
\[m!=\sum_{k=0}^{m}(-1)^kC(m, k)(m-k)^m\] - \(m^n\)类似表示,即用第二类斯特林数表示\(n\)个不同的球放在\(m\)个不同的盒子内没有无空盒限制的方案数
这次枚举不是空的的盒子
\[m^n=\sum_{k=0}^{m}S(n, k)k!C(m, k)\]
最后特别鸣谢yyb大佬的教导
原文地址:https://www.cnblogs.com/cjoieryl/p/8456660.html