非空行约束下相同物体入盒的组合计数问题求解及方法验证
咱们先把问题说清楚:
有5行盒子,每行的数量分别是:
- 第1行:5个盒子
- 第2行:4个盒子
- 第3行:3个盒子
- 第4行:2个盒子
- 第5行:2个盒子
现在要把11个完全相同的物体放进这些盒子里,要求每个盒子最多放1个物体,而且所有行都不能空(也就是每行至少得放1个物体)。
我最开始打算用容斥原理来解决这个问题:先算出「至少有一行是空的」所有摆放方式数,再用不考虑任何非空约束的总摆放数减去这个数,就能得到满足所有行非空的结果。我还初步整理了一个表格来梳理不同空行数量对应的情况数,但后来发现表格里的部分数值有误,下面我会详细拆解正确的计算过程:
| 空行的数量 | 对应的摆放方式数 | 备注 |
|---|---|---|
| 1 | $819$ | 空第1行:1种;空第2行:12种;空第3行:78种;空第4/5行:各364种,总和$1+12+78+364+364=819$ |
| 2 | $14$ | 仅空第3+4行、第3+5行(各1种)、第4+5行(12种)这三种组合可行,其余组合因剩余盒子数不足11个,情况数为0,总和$1+1+12=14$ |
| 3及以上 | $0$ | 剩余盒子数最多为9个(空第3、4、5行),无法放下11个物体,故情况数为0 |
具体计算步骤
总摆放数(无约束):
所有盒子总数是$5+4+3+2+2=16$个,从16个盒子里选11个放物体,组合数为:
$$\binom{16}{11}=4368$$用容斥原理计算「至少一行空」的情况数:
根据容斥公式,至少一行空的情况数 = 单空行情况数之和 - 双空行情况数之和 + 三空行情况数之和 - ...
代入数值:
$$819 - 14 + 0 - 0 + 0=805$$满足所有行非空的情况数:
用总摆放数减去至少一行空的情况数:
$$4368 - 805=3563$$
直接法验证(枚举所有可行的行分配)
我们也可以通过枚举每行的物体数量来验证结果:
要求每行至少1个物体,设第$i$行放$x_i$个,满足$x_1+x_2+x_3+x_4+x_5=11$,且$x_1≤5,x_2≤4,x_3≤3,x_4≤2,x_5≤2$。
按$x_4$和$x_5$的取值组合枚举(仅可能为(1,1),(1,2),(2,1),(2,2)),计算每种组合对应的行选盒组合数之和,最终总和为$876+970+970+747=3563$,和容斥法结果完全一致。
备注:内容来源于stack exchange,提问作者SUNIL CHOUDHARY

