当球碰到盒子

文章详细介绍了不同条件下的盒子与球的排列组合问题,包括不允许有空盒子和允许有空盒子的情况,以及球和盒子互不相同或相同的情况。通过插板法、递推公式和特殊情形的讨论,解析了各种情况下的放球方案数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当球遇上盒子

现在我们开始进入著名的盒子与球问题,来练一练你的排列组合能力。

  • 1.现在有 rrr 个互不相同的盒子和 nnn 个相同的球,要将这 nnn 个球放入 rrr 个盒子中,且不允许有空盒子,问有多少种放法?

我们考虑插板法,可以看成将一个不同的序列分成 rrr 段,则我们需要 r−1r-1r1 个板子,并且供板子插的位置有 n−1n-1n1 个,我们可以得到最终方案为 cn−1r−1c_{n-1}^{r-1}cn1r1

  • 2.现在有 rrr 个互不相同的盒子和 nnn 个相同的球,要将这 nnn 个球放入 rrr 个盒子中,且允许有空盒子,问有多少种放法?

可以发现,此题与上题的不同之处在于它允许有空盒子。所以,我们可以把这 rrr 个板子当做空球放进去,即只装一个样,而非真正的球。则此时,我们在用 r−1r-1r1 个板子去插,便包含了空盒子的情况。最终方案数:Cn+r−1r−1C_{n+r-1}^{r-1}Cn+r1r1

  • 3.现在有 rrr 个相同的盒子和 nnn 个互不相同的球,要将这 nnn 个球放入 rrr 个盒子中,且不允许有空盒子,问有多少种放法?

此时,我们考虑递推。

我们定义 dpijdp_{ij}dpij 对应题意,并且这一类神奇的递推又被称作第二类斯特林数

假设你现在正在放第 iii 个球,有两种情况:单独拿一个盒子装或者随便挑一个盒子放进去。

对于第一种,答案为 dpi−1,j−1dp_{i-1,j-1}dpi1,j1

对于第二种,答案为 j×dpi−1,jj \times dp_{i-1,j}j×dpi1,j

所以 dpi,j=dpi−1,j−1+j×dpi−1,jdp_{i,j} = dp_{i-1,j-1}+j \times dp_{i-1,j}dpi,j=dpi1,j1+j×dpi1,j

特殊情况:只有一个盒子时答案为 111,球数小于盒子数时答案为 000

  • 4.现在有 rrr 个相同的盒子和 nnn 个互不相同的球,要将这 nnn 个球放入 rrr 个盒子中,且允许有空盒子,问有多少种放法?

此题跟上题相像,只不过允许了空盒子。我们直接枚举最后有多少个空盒子即可。

最终方案:∑i=1ndpn,i\sum\limits_{i=1}^n dp_{n,i}i=1ndpn,i

  • 5.现在有 rrr 个互不相同的盒子和 nnn 个互不相同的球,要将这 nnn 个球放入 rrr 个盒子中,且不允许有空盒子,问有多少种放法?

读完题目,发现与第三题仍然很像,只不过盒子从相同变成了不同,所以我们直接在最后乘上 mmm 个盒子的排列即可。

最终方案数:m!×dpn,rm!\times dp_{n,r}m!×dpn,r

  • 6.现在有 rrr 个互不相同的盒子和 nnn 个互不相同的球,要将这 nnn 个球放入 rrr 个盒子中,且允许有空盒子,问有多少种放法?

我们可以这样看这个问题:对于每一个球,我们都有 rrr 个盒子留给它放,所以最终答案:rnr^nrn

  • 7.把 nnn 个同样的小球放入 mmm 个同样的盒子中,不允许有的盒子空着不放,有多少种不同的放法?

我们再次考虑递推。

我们定义dpi,jdp_{i,j}dpi,j 表示将 iii 个小球放入 jjj 个盒子里…(此处省略。)

为了保证没有空盒,我们先往每一个盒子里放一个球。

剩下的我们想第四题一样思考,枚举使用盒子数量。

答案为 ∑i=1ndpn−m,i\sum\limits_{i=1}^{n} dp_{n-m,i}i=1ndpnm,i

特殊情况:当只有一个盒子或球数等于盒子数时,答案为 111;当球数小于盒子数时,答案为 000

  • 8.现在有 rrr 个相同的盒子和 nnn 个相同的球,要将这 nnn 个球放入 rrr 个盒子中,且允许有空盒子,问有多少种放法?

我们以第二题和第七题的思路进行思考

考虑转化:先借 mmm 个球铺满每个盒子,求完答案后再把球还回去。

最终答案为 dpn+m,ndp_{n+m,n}dpn+m,n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值