组合数学——“盒子与小球问题”详解(2)
“盒子与小球”问题
“盒子与小球”问题指的是如下这一类问题:把k个小球放到n个盒子里,求一共有多少种方案。这类问题的约束条件有很多种,诸如盒子编号的,小球是编号的,盒子不编号(任意两个盒子没有区别),小球不编号(任意两个小球没有区别),允许有空盒,不允许有空盒,允许小球不放完,不允许小球不放完等等。
问题变种(1):n个一样的小球放到k个编号的盒子里,允许盒子空,但小球必须全部放入盒子,一共有多少种方案?
记此问题的解为
不允许盒子空,则每个盒子至少有一个元素。如果从不允许盒子空的方案的每一个盒子中都分别拿走一个元素,就会成了允许盒子空的一个解,而且这些解显然是一一对应的,不会有重复解,也不会漏解。
假设我们进行如下两步操作:
(1)先把每一个盒子都装填1个元素,由于元素无编号,所以一共有1种方案;
(2)然后,按照允许盒子空的方式(用
通过上述两个步骤产生的方案一共有
由于
因此,
从这个式子还可以看出:n个一样的小球放到k个编号的盒子里,允许盒子空的方案数可以由不允许盒子空的放置方案转移而来,具体方式是:从不允许盒子空的方案的每一个盒子中都拿走一个元素。因为拿走k个元素后还剩n个元素,因此
综上所述,问题变种(1):n个一样的小球放到k个编号的盒子里,允许盒子空,方案数量为:
问题变种(2):n个一样的小球放到k个编号的盒子里,允许盒子空,且小球不必全部放入盒子,一共有多少种方案?
记小球不必全部放入盒子,允许盒子空的方案为
从前面的问题变种(1)可以看到,我们可以修改其中一个约束条件,尝试从新问题的解转移到本问题的解。
不妨尝试从小球必须全部放入盒子的解转移过来。小球必须全部放入盒子的解为
(1)按照
(2)去掉第
根据操作,上述两个步骤的操作,产生的方案数量为:
由于第(2)步拿走了一个组及其内部的球,相当于球没有放完或者球剩余在手上,且剩余的球可以遍取
故:
用k+1代k,得:
从另外一个角度也可以解释:
根据题意,允许不放完小球的方案,即把放入0,1,2,3....n个小球的所有“放完”小球的方案加起来:
用k-1代替k,则有:
回到前面两个操作,按照去掉的第k组的元素个数分类,根据加法原理得:
即:
对比得到:
再用k+1代替k,即得:
综上所述,把n个一样的小球放入k个编号的盒子里,允许盒子空,并且小球可以不放完,方案数为: