球盒问题是组合数学中的经典问题,问题统一一下就是这样:
有 nnn 个(不)同的球,放进 mmm 个(不)同的盒子里,(不)允许有空盒,求方案数。
根据上面的描述可以看出,这个问题总共有 888 种情况,我们一个一个来看。为了方便起见,我们只考虑有解的情况 。
-
球相同,盒不同,无空盒
Cn−1m−1C_{n - 1}^{m - 1}Cn−1m−1
可以用插板法,nnn 个球中总共有 n−1n - 1n−1 个空隙,根据条件,我们只需要在 n−1n - 1n−1 个空隙中插 m−1m-1m−1 个板子即可。
-
球相同,盒不同,有空盒
Cn+m−1m−1C_{n + m - 1}^{m - 1}Cn+m−1m−1
既然允许有空盒,那么我们可以多加 mmm 个“虚”的球,预先塞进每个盒子。
这样问题就化归成了有 n+mn + mn+m 个相同的球和 mm