十二重计数法

\(n\) 个球,\(m\) 个盒子,求在一定限制条件下把小球放入盒子的方案数。

1. 球之间互相区分,盒子之间互相区分。

每个球能放 \(m\) 个盒子,显然是:

\[m^n \]

2. 球之间互相区分,盒子之间互相区分,每个盒子至多放一个球。

先选出装了球的盒子,然后排列球的顺序。
答案为:

\[\binom{m}{n} n! = m^{\underline{n}} \]

3. 球之间互相区分,盒子之间互相区分,每个盒子至少放一个球。

容斥,答案为:

\[\sum_{i = 0}^n (-1)^i \binom{m}{i} (m - i)^n \]

4. 球之间不互相区分,盒子之间互相区分。

插板,答案为:

\[\binom{n + m - 1}{m - 1} \]

5. 球之间不互相区分,盒子之间互相区分,每个盒子至多放一个球。

答案为:

\[\binom{m}{n} \]

6. 球之间不互相区分,盒子之间互相区分,每个盒子至少放一个球。

可以先每个盒子都放一个,然后就变成了 4.。
答案为:

\[\binom{n - 1}{m - 1} \]

7. 球之间互相区分,盒子之间不互相区分。

发现每个盒子只由它装了哪些球来区分,没有装球的盒子是没有区别的。
所以可以先枚举装了球的盒子数,答案就是斯特林子集数的行前缀和:

\[\sum_{i = 1}^m \begin{Bmatrix} n \\ i \end{Bmatrix} \]

8. 球之间互相区分,盒子之间不互相区分,每个盒子至多放一个球。

显然答案为:

\[[n \le m] \]

9. 球之间互相区分,盒子之间不互相区分,每个盒子至少放一个球。

斯特林子集数,答案为:

\[\begin{Bmatrix} n \\ m \end{Bmatrix} \]

10. 球之间不互相区分,盒子之间不互相区分。

分拆数。

转置一下,问题就从 有 \(m\) 个盒子,每个盒子中放任意个球 变成了 有任意个非空盒子,每个盒子可以放至多 \(m\) 个球。
所以答案为:

\[[z^n] \prod_{i = 1}^m \dfrac{1}{1 - z^i} \]

可以通过先 \(\ln\)\(\exp\) 的方式快速求出。

11. 球之间不互相区分,盒子之间不互相区分,每个盒子至多放一个球。

答案为:

\[[n \le m] \]

12. 球之间不互相区分,盒子之间不互相区分,每个盒子至少放一个球。

每个盒子先放一个球后就变成了 10.。
答案为:

\[[z^{n - m}] \prod_{i = 1}^m \dfrac{1}{1 - z^i} \]

posted @ 2024-05-24 17:32  definieren  阅读(43)  评论(0)    收藏  举报