🔖 math组合数学

预备知识

  • 组合数

    (nm)=C(n,m)={n!m! (nm)!,nm0,n<m
  • 第二类斯特林数

    S(n,m)=mS(n1,m)+S(n1,m1)=1m!k=0m(1)k(mk)(mk)n其中, n>1,m1

小球放盒模型

n 个小球放入 m 个盒子中,求方案数。

000 小球无区别、盒子无区别、不允许空盒

初始时,先给每一个盒子放一个小球。问题转化成将 nm无区别小球 放入 m无区别盒子 中,且 允许有空盒

方案数:G(x)=xm(1x)(1x2)(1xm)xn 项系数。


001 小球无区别、盒子无区别、允许有空盒

设某一方案中,有 i 个小球的盒子有 ai 个。

显然,(i=0nai)=m, 0aim 。对于每一个方案,我们仅用 ai0 的项组成的形如 {(r,ar),(p,ap),,(q,aq)} 的序偶序列表示足矣。问题等价于用 {1,2,,m} 拆分 n 的拆分数。利用母函数,容易得到:

G(x)=(1+x+x2+)(1+x2+x4+)(1+xm+x2m+)=xm(1x)(1x2)(1xm)

方案数:G(x)=xm(1x)(1x2)(1xm)xn 项系数。


010 小球无区别、盒子有区别、不允许空盒

相当于在 n 个小球中放置 m1 块挡板将小球分成不为空的 m 部分。这个问题等价于在 n1 个位置中选择 m1 个位置。方案数:C(n1,m1)


011 小球无区别、盒子有区别、允许有空盒

由于允许空盒,根据前面的分析,挡板可以相邻。所以问题等价于,在 n+m1 个位置中放置 m1 块挡板。方案数:C(n+m1,m1)


100 小球有区别、盒子无区别、不允许空盒

设方案数 f(n,m)。讨论任一小球 bi 的摆放情况,则所有的方案分为两类:

  1. bi 独占一个盒子;相当于其它 n1 个不同球需要放入 m1 个相同盒子且不允许空盒。方案数:f(n1,m1)

  2. bi 不独占一个盒子; 相当于先把 n1 个不同球放入 m 个相同盒子且不允许空盒,再将 bi 放入任一盒子中。

根据组合数的加法原理,总结以上两种情况,可得到递推式:

f(n,m)=m×f(n1,m)+f(n1,m1)

比较第二类斯特林数,不难发现:f(n,m)=S(n,m)


101 小球有区别、盒子无区别、允许有空盒

不允许空盒 的基础上枚举空盒个数就好了。方案数:i=1min(n,m)S(n,i)


110 小球有区别、盒子有区别、不允许空盒

因为无空盒,且每个小球必然只能放到一个盒子中,故方案数等于 盒子无区别 时的方案数乘上 m!。故方案数:m!×S(n,m)


111 小球有区别、盒子有区别、允许有空盒

显然每个球有 m 个选择,且互不影响。方案数:mn

小记

n 个球m 个盒子是否允许空盒方案数
无区别无区别无空盒G(x)=xm(1x)(1x2)(1xn)xn 项的系数
无区别无区别有空盒G(x)=1(1x)(1x2)(1xn)xn 项的系数
无区别有区别无空盒C(n1,m1)
无区别有区别有空盒C(n+m1,n)
有区别无区别无空盒S(n,m)
有区别无区别有空盒(1)S(n,1)+S(n,2)++S(n,m),nm(2)S(n,1)+S(n,2)++S(n,n),nm
有区别有区别无空盒m! S(n,m)
有区别有区别有空盒mn
  • 参考资料:《组合数学》(第 4 版》 ---by 卢开澄、卢华明
© 2017-2025 光和尘有花满渚、有酒盈瓯

Comments