复习初赛的时候,这个问题一直困扰着我......
n个小球,装进m个盒子里。
三个条件:小球是否相同,盒子是否相同,是否允许有空盒子。
这就组合出了共八个问题。
1.小球相同,盒子相同,不允许有空盒子。
这个问题等效成把一个数n拆成m个数,且先拆出的数不小于后拆出的数(避免重复情况)。
设f(n,m)为n拆成m份的方案数。
如果这么拆:x1+x2+x3+...+xm=n (xi>=1)。
当x1=1时,后面的拆法表示成f(n-1,m-1)。
当x1>=2时,式子可以变成(x1-1)+(x2-1)+...+(xm-1)=n-m。
所以后面的拆法表示成f(n-m,m)。
所以f(n,m)=f(n-1,m-1)+f(n-m,m)。
2.小球相同,盒子相同,允许有空盒子。
相当于把问题1的xi>=1改成xi>=0。
所以设x'=x+1,把式子变成x'1+x'2+...+x'm=n+m,转化为了问题1。
答案即为f(n+m,m)。
3.小球不同,盒子相同,不允许有空盒子。
设球的编号为1,2......n。
设n个不同球,m个相同盒的放法为g(n,m)。
如果第一个球的盒子里只有球1,之后的操作的方案数为g(n-1,m-1)。
如果第一个球的盒子里不只有球1,可以先把1拿出来,剩下的随便放,方案数是g(n-1,m)。
再把1放回去,m个盒子是相同的,所以有m种放法。
加一起就是:g(n,m)=g(n-1,m-1)+m*g(n-1,m)。
4.小球不同,盒子相同,允许有空盒子。
我们可以沿用问题3的思路。
假设把所有球都放到一个盒子,两个盒子,三个盒子......m个盒子。
这样就转换为了问题3。
答案即为:g(n,1)+g(n,2)+g(n,3)+...+g(n,m)。
5.小球不同,盒子不同,不允许有空盒子。
对问题3中的盒子进行不同排列即可。
答案就是:m!*g(n,m)。
6.小球不同,盒子不同,允许有空盒子。
显然随便放啊。
方案数就是mn。
7.小球相同,盒子不同,不允许有空盒子。
把长为n的一串小球分成m段。
挡板法:在n-1个空里插入m-1个挡板即可。
方案数:C(n-1,m-1)。
8.小球相同,盒子不同,允许有空盒子。
考虑转换为问题7。
往每个盒子里额外放一个小球。
变成了n+m个球,m个盒子的问题7。
方案数:C(n+m-1,m-1)。