问题:
把n个球放到r个盒子里一共有多少种分法?这里要考虑的因素包括:球是否区分、盒子是否区分、盒中是否允许为空?
讨论:
- 球可区分、盒可区分、允许空盒
- 对每个球而言都可以选择放在任意一个盒子中,并且这样得到的结果不会与其他重合,因此有rn种选择
- 球可区分、盒可区分、不允许空盒
- 首先将n个球分成r个非空子集(共S(n, r)种),对于每个这样的划分,它对应的排列数为r!,因此共有S(n, r)*r!种
- 球可区分、盒不可区分、允许空盒
- 任何一种分配都相当于将n个球分成k(1<=k<=r)个子集,这样总的方案数是S(n, 1)+S(n, 2)+...+S(n, r)
- 球可区分、盒不可区分、不允许空盒
- 首先将n个球分成r个子集(共S(n, r)种),对于每个这样的划分,它只对应唯一的排列,因此共有S(n, r)种
- 球不可区分、盒可区分、允许空盒
- 等价于求解方程x1+x2+...+xr=n有多少组整数解,该方程又等价于求解方程x1+x2+...+xr=n+r有多少组自然数解,答案为C(n+r-1, r-1)。
- 球不可区分、盒可区分、不允许空盒
- 等价于求解方程x1+x2+...+xr=n有多少组自然数解,答案为C(n-1, r-1)。
- 球不可区分、盒不可区分、允许空盒
- 记把n个球分成r分(均不为空)的方案数为B(n,r),那么这里的方案总数为B(n,1)+B(n,2)+...+B(n,r)
- 球不可区分、盒不可区分、不允许空盒
- 方案数为B(n,r)
Stirling数S(n, k)说明:
定义:S(n, k)含义为把一个n元素集合分解为k个子集的个数。例如S(3, 2) 共有4个 {1, 2, 3} = {1, 2}U{3}={1, 3}U{2}={2,3}U{1}
求解:显然S(n,1)= S(n,n)=1, S(n, k)=0(k>n),并且S(n+1, k)=S(n, k-1)+k*S(n, k)。后者也比较好理解,S(n+1,k)的构成恰好分两部分,一种将原n元素集合划分为k-1个子集,最后新加的元素始终作为单独的一个集合。第二种办法是将原n元素集合划分为k个子集,将新元素加入其中某一个集合,因为有k种可能,所以要乘以个系数k。
无序分拆数B(n, k)说明:
定义:B(n,k)表示将n分拆为k个无序正整数和的方案数,易得B(n,1)=B(n,n)=1
求解:B(n+k, k)=B(n,1)+B(n,2)+...+B(n, k)。构造一个双射关系从而证明该等式,右边表征将n分拆成最多k部分的方案个数,记n=n1+n2+...nm+0+...+0(共k项),这里1<=m<=k,并且n1>=n2>=...>=nm>=1,将这中分拆方案映射为n+k=(n1+1)+(n2+1)...(nm+1)+1+...+1(共k项)。这样可以确定等式右边到左边是单射。另一方面,对于n+k=l1+l2+...+lk,将每个l减去一个1,然后再将所有的0去掉,这样得到必然属于某个B(n,s)(1<=s<=k),于是左边到右边是单射。此时,显然已经构造了等式两边的双射关系。证毕
参考:
《组合理论及其应用》