放球整理
\(n\) 个不同球放入 \(m\)? 个相同盒子里,不能空盒
这种情况就是第二类 Stirling 数,即 \(S(n, m)\)。
其递推公式如下:
\(f_{n,m} = f_{n - 1, m -1} + m \times f_{n - 1, m}\)
递推边界:
\(f_{n,m} = 0 (n < 0)\)
\(f_{n,n} = f_{n,1} = 1\)?
\(n\) 个不同球放入 \(m\)? 个相同盒子里,可以空盒
这种情况,答案为 \(\sum_{i=1}^m S(n,i)\)。
\(n\) 个相同球放入 \(m\)? 个不同盒子里,不能空盒
这种情况直接组合数。答案等于 \(C_{n-1}^{m-1}\)????。注意 C++ 算乘的时候可能会溢出,可以在中间使用 int_128
辅助计算。
\(n\) 个相同球放入 \(m\)? 个不同盒子里,可以空盒
同上,但答案等于 \(C_{n+m-1}^{m-1}\)?。
\(n\) 个不同球放入 \(m\)?? 个不同盒子里,不能空盒
答案为 \(n! \times S(n,m)\)(第二类 Stirling 数)。
\(n\) 个不同球放入 \(m\) 个不同盒子里,可以空盒
答案直接就为 \(m^n\)。