普通隔板法

问题1: 有nn个相同的球,放到m(mn)m(m \leqslant n)个不同的盒子里,每个盒子至少是11个球,问有多少种放法

本质是求 x1+x2++xm=n,xi1x_1+x_2 + \cdots + x_m = n,\forall x_i \geqslant 1的解的个数

方案为为Cn1m1C_{n-1}^m-1

进阶隔板法

nn个相同的球,放到m(mn)m(m\leqslant n)个不同的盒子里,盒子可以为空,问有多少种放法.

问题2: 有nn种球,每种球都有无限个,现在要取mm个球有多少种取法?

方案为Cn+m1m1C_{n+m-1}^m-1

解法1:等效法

  • 第一步: 从这nn个球里,随机放到这个mm盒子里.
  • 第二步: 然后另外拿mm个球,分别放一个球放到mm个盒子里,这样就保证每个盒子里都至少有一个球.

可以想到按这两步来做达到的效果等价于普通隔板法:n+mn+m个球放到mm个盒子里的效果是一样的.也就是说这两步合在一起 做为一个整体来看,可能的方案数就等于有C(n+m1)m1C_(n+m-1)^{m-1}

设第二步可能方案为xx,第二步只有一种可能方案,根据分步乘法原理,

那么这样放的方案为xtimes1=Cn+m1m1x times 1 = C_{n+m-1}^{m-1}

  • 等效于: 从n+mn+m个球里放盒子,每个盒子至少一个的方案数,所以$x = C_{n+m-1} ^ {m-1}

解法2: 一一对应技术

有n个球,放到m个(m<=n)个不同的盒子里,盒子不可以为空,设为f(n,m)f(n,m)

有n个球,放到m个(m<=n)个不同的盒子里,盒子可以为空,设为g(n,m)g(n,m)

证明f(n,m)=g(nm,m)f(n,m) = g(n-m,m)

f(n,m)f(n,m)所形成的集合的元素序列的每个值为>=1,现在把所有的元素都减1,那总数量为n-m

可以想到:减去一之后,每个元素都对应一个新的元素(可以为0)

所以:f(n,m)=g(nm,m)f(n,m) = g(n-m,m)


| 
| |
| | |

所有减去一之后.

| 
| |