组合数学
1.1 加法原理、乘法原理
在组合数学中,加法原理和乘法原理是两条基本定理。
加法原理 如果解的集合可以划分成若干非空子集,则解可以表示为这些子集的并集。通俗来讲,就是一个问题的答案可以分成若干互不重叠的类,求出来每一类的答案,它们的和即为原问题的答案。
例1:某班有20名男生,30名女生,问该班有多少学生?
答案为:20+30=50
例2:从重庆去武汉有许多交通工具可以选择。如果坐飞机,有25个航班;如果坐火车,有16个车次;如果坐轮船,有4个航班。如果只允许坐飞机、火车和轮船之一,从重庆到武汉有多少种方式?
答案为:25+16+4=45
乘法原理 如果一个问题可以分为若干环节完成,完成第1个环节有a1a_1a1种方案,完成第2个环节有a2a_2a2种方案,……,完成第k个环节aka_kak种方案,则问题的方案总数为每一个环节的方案数的乘积。ans=Πi=1kaians=\Pi_{i=1}^ka_ians=Πi=1kai
例3:小明要从重庆到北京,他想先坐船到武汉,再从武汉坐高铁到北京去。已知从重庆到武汉的轮船有4班,从武汉到北京的高铁有15趟。请问他从重庆经过武汉到北京有多少种方式?
答案为: 4×15=604\times 15=604×15=60
例4: 从5位男人、6位妇女、2名男孩和4名女孩中选择一男人、一妇女、一男孩和一女孩,问有多少种方法?
答案为:5×6×2×4=240种。
例5:粉笔根据颜色分有红、黄、蓝三种,根据长度分可以分为长、中、短三类,根据直径可以分为粗、细两类,问粉笔最多有多少种分类?
分析:根据题意,确定一种粉笔需要去确定它的颜色、长度、直径三个属性,三个属性都确定了才能确定这种粉笔的分类。所以可以应用乘法原理,答案为:
3×3×2=183 \times 3\times 2=183×3×2=18
1.2 排列组合
1.2.1 排列
排列就是指从给定个数的元素中取出指定个数的元素进行排序,或者说,从总数固定的元素中有序地取出若干元素的方案数。
从n个元素中取出r个元素的排列,记作PnrP_n^rPnr,或为P(n,r).P(n,r).P(n,r).
取出r个元素,可以分成r个环节,第1个环节有n种选择,第2个环节有n-1种选择,第i个环节有n−i+1n-i+1n−i+1种选择,则根据乘法原理,有:
Pnr=Πi=1r(n−i+1)P_n^r=\Pi_{i=1}^r (n-i+1)Pnr=Πi=1r(n−i+1)
例1:如果只考虑小写字母,三个不同的字母可以组成多少个单词。(不考虑单词是否真实存在).
分析:小写字母有26个,从中取出3个不同字母的排列为:
P(26,3)=26∗25∗24=1560P(26,3)=26*25*24=1560P(26,3)=26∗25∗24=1560
例2:例.将字母表中的26个字母排序使得元音字母a,o,e,i,u中任意两个都不得相继出现,这种排序的方法的总数是多少?
该问题的解(象许多的计数问题一样)一旦看出如何去做则可立刻得出。我们考虑两个要完成的主要任务。第一个任务是决定如何对这些辅音字母排序。计有21个辅音字母,故有辅音字母的排列数是P(21,21)P(21,21)P(21,21)。由于我们不能有两个元音字母相连地出现在最终的字母排序中,因此这些元音字母必须放在这些辅音字母之前之后之间的22个空间。我们的第二个任务是把这些元音字母放入这些位置。对于a有22个位置,对。有21个位置,有20个位置,o有19个位置,a有18个位置。就是说,第二个任务可以用:
P(22,5)=22×21×20×19×18=3160080P(22,5)=22\times 21 \times 20 \times 19 \times 18=3160080P(22,5)=22×21×20×19×18=3160080
所以,总的方案是P(21,21)×P(22,5)P(21,21) \times P(22, 5)P(21,21)×P(22,5)
例3:求有多少个没有重复数字且能够被5整除的四位奇数?
分析 因为是奇数,且要能被5整除,所以个位必须为5.
又因为千位不能为0,所以千位上有8种选择;
百位不能与个位、千位相同,所以百位也有8种选择;
十位有7种选择。
所以,答案为8×8×7=4488 \times 8 \times 7=4488×8×7=448
有重复元素的排列
如果从n个元素中取出r个元素,元素可以重复选取,问题有多少种方案?
分析:r个元素可以分为r个环节完成,每一个环节有n种选择,所以答案为:
ans=nrans=n^rans=nr
1.2.2 组合
组合从给定个数的元素中取出指定个数的元素,不考虑其顺序。
从n个元素中取出r个元素的组合,记作CnrC_n^rCnr,或为C(n,r)C(n,r)C(n,r).
只要取出的元素是相同的,不管它们如何排列,都是同一种方案。如果取出的元素是r个,则有r!r!r!种排列,其实都是同一种组合。
所以,Cnr=Pnr/r!C_n^r=P_n^r/r!Cnr=Pnr/r!
例1: 一个盒子里装了10个不同种类的球,每种球1个,问取出3个球有多少种不同的方案。不考虑顺序。
分析:因为不考虑顺序,所以它是一个组合数。
答案为:
C(10,3)=10×9×81×2×3=120C(10,3)=\frac{10\times9\times 8}{1\times2\times3}=120C(10,3)=1×2×310×9×8=120
例2:从[1,300]中取3个不同的数,使这3个数的和能被3整除,有多少种方案?
分析:将[1,300]分成3类:
A={i|i≡1(mod 3)}={1,4,7,…,298},
B={i|i≡2(mod 3)}={2,5,8,…,299},
C={i|i≡3(mod 3)}={3,6,9,…,300}.
要满足条件,有四种解法:
1).3个数同属于A;
2).3个数同属于B;
3).3个数同属于C;
4).A,B,C各取一数.
故共有3×C(100,3)+1003=485100+1000000=14851003\times C(100,3)+100^3=485100+1000000=14851003×C(100,3)+1003=485100+1000000=1485100
鸽笼原理
这个定理的可以描述为:
如果有n+1只鸽子进入n个笼子,则必有两只鸽子在同一个笼子里。其中n>0。
它也可以称为抽屉原理,描述大同小异。
有n+1个物品放入n个抽屉,则必有两个物品在同一个抽屉里。其中n>0。
有重复元素的组合
从nnn个元素中取出kkk个元素的组合,元素可以重复选取,问有多少种方案?
如n=3,r=2,有6种选择:(1,1),(1,2),(1,3),(2,2),(2,3),(3,3)
分析:设第一个元素选择x1x_1x1个,第二个元素选择x2x_2x2个,……,第n个元素选择xnx_nxn个。则有方程:x1+x2+……xn=kx_1+x_2+……x_n=kx1+x2+……xn=k。问题转换为求方程的非负整数解的个数。令yi=xi+1y_i=x_i+1yi=xi+1,则答案为y1+y2+…+yn=k+ny_1+y_2+…+y_n=k+ny1+y2+…+yn=k+n的正整数解的个数。想想k+nk+nk+n个相同的小球拍成1列,现在要把它分成nnn个部分,则只需在其中放置n-1块隔板即可。一共有k+n−1k+n-1k+n−1个位置用来放隔板,所以答案为C(n+k−1,n−1)C(n+k-1,n-1)C(n+k−1,n−1)
1.2.3 盒子与球常见模型
最基本的模型
n个不同的球放入m个不同的盒子中,球必须全部放完,问有多少种方案?
分析:每个球都有m种选择,所以答案为:ans=mnans=m^nans=mn
根据球是否相同、盒子是否相同,球是否必须放完,盒子是否可以为空,盒子与球的问题可以扩展出许多模型。
在学习这些模型之前,我们先来学习两种模型:集合划分模型和整数分拆模型。
集合划分
将一个n个元素的集合SSS分成m个非空子集S1,S2,…,SmS_1,S_2,\dots,S_mS1,S2,…,Sm,使得这些子集没有交集,并且它们的并集等于全集,则称这m个子集是集合SSS的一个划分。
设S(n,m)S(n,m)S(n,m)表示nnn个元素的集合的划分方案数,则有下列递推式:
S(n,m)=S(n−1,m−1)+m∗S(n−1,m)S(n,m)=S(n-1,m-1)+m*S(n-1,m)S(n,m)=S(n−1,m−1)+m∗S(n−1,m)
S(n,m)S(n,m)S(n,m)作为特定的标记,用来表示集合划分方案数,实际上,S(n,m)S(n,m)S(n,m)即为我们后面要学习的第二类斯特林数列。
整数分拆模型
有序分拆:将整数n分成k个有序部分,这个问题可以采用隔板法解决,即在nnn个球中插入k−1k-1k−1个隔板,答案为C(n−1,k−1)C(n-1,k-1)C(n−1,k−1)
无序分拆:设p(n,k)p(n,k)p(n,k)表示将整数nnn拆成kkk个无序部分的方案数,则有如下递推式:
p(n,k)=p(n−1,k−1)+p(n−k,k)p(n,k)=p(n-1,k-1)+p(n-k,k)p(n,k)=p(n−1,k−1)+p(n−k,k)
p(n,k)p(n,k)p(n,k)也是作为特定标记,用来表示整数的无序分拆。此处注意ppp是小写,和排列的标记PP


2721

被折叠的 条评论
为什么被折叠?



