首页 > 代码库 > 组合数学

组合数学

最近做笔试题经常要碰到什么组合题,这些都是高中或者大一大二接触的,现在都不记得了。如果编程题要是见到这个就肯定跪了。

隔板法

隔板法就是在n个元素间插入(b-1)个板,即把n个元素分成b组的方法。

允许若干个人(或位置)为空的问题

1. 将20个大小形状完全相同的小球放入3个不同的盒子,允许有盒子为空,但球必须放完,有多少种不同的方法?

分析:本题中的小球大小形状完全相同,故这些小球没有区别,问题等价于将小球分成三组,允许有若干组无元素,用隔板法.
解析:将20个小球分成三组需要两块隔板,因为允许有盒子为空,不符合隔板法的原理,那就人为的再加上3个小球,保证每个盒子都至少分到一个小球,那就符合隔板法的要求了(分完后,再在每组中各去掉一个小球,即满足了题设的要求)。然后就变成待分小球总数为23个,球中间有22个空档,需要在这22个空档里加入2个隔板来分隔为3份,共有C(22,2)=231种不同的方法.
点评:对n件相同物品(或名额)分给m个人(或位置),允许若干个人(或位置)为空的问题,可以看成将这n件物品分成m组,允许若干组为空的问题.将n件物品分成m组,需要m-1块隔板,将这n件物品和m-1块隔板排成一排,占n+m-1位置,从这n+m-1个位置中选m-1个位置放隔板,因隔板无差别,故隔板之间无序,是组合问题,故隔板有C(n+m-1, m-1)种不同的方法,再将物品放入其余位置,因物品相同无差别,故物品之间无顺序,是组合问题,只有1种放法,根据分步计数原理,共有C(n+m-1,m-1)×1=C(n+m-1,m-1)种排法.

水果分篮问题

2. 有广西橘子,烟台苹果,莱阳梨若干,从中随意取出四个,问共有多少种不同取法?

问题等价于有四个水果篮,将其分为三组向里面加入不同水果,且允许篮子为空; 分为三组需要2个隔板,将水果篮与隔板并排 ,隔板共有4+2个放置位置,故有C(4+2),2个选择,即15种。

每人(或位置)必须有物品问题

3. 将20个优秀学生名额分给18个班,每班至少1个名额,有多少种不同的分配方法?
分析:本题是名额分配问题,用隔板法.
解析:将20个名额分配给18个班,每班至少1个名额,相当于将20个相同的小球分成18组,每组至少1个,将20个相同的小球分成18组,需要17块隔板,先将20个小球排成一排,因小球相同,故小球之间无顺序,是组合,只有1种排法,再在20个小球之间的19个空档中,选取17个位置放隔板,因隔板无差别,故隔板之间无序,是组合问题,故隔板有C19 17种不同的放法,根据分步计数原理,共有C(19,17)种不同的方法,因17块隔板将20个小球分成18组,从左到右可以看成每班所得的名额数,每一种隔板与小球的排法对应于一种分法,故有C(m-1,n-1)种分法.(这里优秀学生名额也是无差别的。)

对相同物品分配问题,注意某若干组能否为空,能为空和不能为不空,方法不同,要体会和掌握.

组合数学