排列组合基础
排列组合基础
排列组合是组合数学中的基础。排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。
在高中初等数学中,排列组合多是利用列表、枚举等方法解题。 ----\(OI-WIKI\)
加法原理
举个例子,假设你要从\(a\)地到\(b\)地,开车有\(3\)种选择(即\(3\)条不一样的线路,下同),乘飞机有\(2\)种选择,坐火车有\(2\)种选择(假设不考虑每种选择的费用、时间等客观因素,仅考虑选择本身),那么,一共有多少选择呢?显然是\(3+2+2=7\)种。
那么类似地,若完成某件事情共有\(n\)种方法,那么完成这件事情的总方法数就等于每种方法的方法数之和。也就是说:完成一个工程可以有\(n\)类办法,\(a_i(1\le i\le n)\)代表第\(i\)类方法的数目。那么完成这件事共有\(S=\sum\limits_{i=1}^{n}{a_i}\)种不同的方法。
乘法原理
还是刚才的例子,若从\(a\)地到\(b\)地开车的路线图如下,那么从\(a\)到\(b\)有几种方法呢?
显然,\(a\)到\(c\)有\(3\)种,\(c\)到\(b\)有\(2\)种,故\(a\)到\(b\)有\(3\times 2=6\)种方法。
即若完成某件事共有\(n\)个步骤,完成这件事情的总方法数就等于每个步骤的方法数之积。也就是:完成一个工程需要分\(n\)个步骤,\(a_i(1\le i\le n)\)代表第\(i\)个步骤的不同方法数目。那么完成这件事共有\(S=\prod\limits_{i=1}^{n}{a_i}\)种不同的方法。
例1
若一书架上有\(3\)类书,第一类有\(5\)本,第二类有\(3\)本,第三类有\(6\)本(书之间两两不相同),那么:
\((1)\)任拿一本书有几种可能?
\((2)\)从三本书中各任拿一本有多少种可能?
解答
\((1)\)从第一、二、三类书中任拿一本分别有\(5\)、\(3\)、\(6\)种可能,根据加法原理,共\(5+3+6 = 14\)种可能。
\((2)\)同上,从第一、二、三类书中任拿一本分别有\(5\)、\(3\)、\(6\)种可能,根据乘法原理,共\(5*3*6 = 90\)种可能。
感性理解即可
排列组合基础
排列数
举个例子,假设你有一个长\(n\)的序列\(a\)(\(a_1\neq a_2\neq …\neq a_n\),\(n\ge 2\)),从中要选出\(2\)个数\(x,y\)组成有序数对\((x,y)\),共有几种可能?
- 假设\(n=2\),则有两种可能:\((a_1,a_2),(a_2,a_1)\)
- 假设\(n=3\),则有六种可能:\((a_1,a_2),(a_1,a_3),(a_2,a_1),(a_2,a_3),(a_3,a_1),(a_3,a_2)\)
……
通过以上枚举我们可以找出规律,当有\(n\)个数时,数对的第一个数可以是这\(n\)个数中的任意一个,故有\(n\)种可能;第二个位置由于第一个位置拿走一个数,应是剩下\(n-1\)个数中的任意一个,故有\(n-1\)种可能,故由于乘法原理,共\(n*(n-1)\)种可能。
那如果要选\(3\)个数(\(n\ge 3\))组成有序三元组\((x,y,z)\)呢?同样地我们思考:第一个位置有\(n\)种情况,第二个有\(n-1\)种,第三个有\(n-2\)种,故一共有\(n*(n-1)*(n-2)\)种。
若扩展到\(n\)个数中选\(m\)个组成有序数列的话,同理,也就能推出相应的公式了:
从\(n\)个不同元素中,任取\(m\)(\(n,m\in \N^*\))个元素按照一定的顺序排成一列,叫做从\(n\)个不同元素中取出\(m\)个元素的一个排列;从\(n\)个不同元素中取出\(m\)(\(m\le n\)) 个元素的所有排列的个数,叫做从\(n\)个不同元素中取出\(m\)个元素的排列数,用符号\(A_n^m\)(或者是\(P_n^m\))表示。
由刚刚的推导过程可推出排列数的公式:
\(n!\)为\(n\)的阶乘,即\(n! = \prod\limits_{i=1}^{n}i\)。故\(\prod\limits_{i=l}^{r}{i} = \dfrac{r!}{(l-1)!}\)。\(0! = 1\)。
\(A_n^m = n*(n-1)*(n-2)*…*(n-m+1) = \prod\limits_{i=n-m+1}^{n}i = \dfrac{n!}{(n-m)!}(m\le n)\)
特殊地,\(m=n\)时,\(A_n^m = a_n^n = n!\),此时\(A_n^n\)叫做\(n\)的全排列。
特殊地,\(m>n\)时,\(A_n^m = 0\)。
例2
有\(6\)个人要排成一队拍照,请问当满足以下条件时有几种排法:
\((1)\)甲、乙既不在排头也不在排尾。
\((2)\)甲不在排头、乙不在排尾、甲乙不相邻。
解答
\((1)\)
因为甲、乙不在排头和排尾,故排头排尾要在剩下的\(4\)个人里选,共\(A_4^2 = 12\)种排法;
选定排头排尾后,中间的\(4\)个人没有要求,故为\(4\)的全排列即\(A_4^4 = 24\)种排法;
综上,由乘法原理,共\(12*24 = 288\)种排法。
\((2)\)
由于甲不在排头、乙不在排尾,考虑分类讨论求解
\(①\) 若甲在排尾,乙在排头:
此时排头排尾已定且甲乙一定不相邻,中间\(4\)个人任意排队,共\(A_4^4 = 24\)种排法。
\(②\) 若甲在排尾,乙不在排头:
此时乙不能在倒数第二位(与甲相邻),故还剩\(3\)个位置可给乙选,共\(A_3^1 = 3\)种排法,剩下的\(4\)个人没有要求,共\(A_4^4 = 24\)种排法。根据乘法原理,共\(3*24 = 72\)种排法。
\(③\) 若甲不在排尾,乙在排头:
分析过程基本同\(②\),共\(72\)种排法。
\(④\) 若甲不在排尾,乙不在排头:
枚举甲乙的站位情况(\(x\)表示其余的四个人):共\((x甲x乙xx),(x甲xx乙x),(xx甲x乙x),(x乙x甲xx),(x乙xx甲x),(x乙x甲xx)\) \(6\)种情况,剩下的\(4\)个人有\(A_4^4 = 24\)种情况,共\(6*24 = 144\)种情况。
综上,共\(24+72+72+144 = 312\)种情况。
组合数
注意到,刚刚所有的定义中都存在“有序”“排列”等词语,说明我们取出的顺序是有要求的,即先选\(a_1\),后选\(a_2\)与先选\(a_2\),后选\(a_1\)是不一样的,那么,若改成无序会怎样呢?
还是刚刚的例子,假设你有一个长\(n\)的序列\(a\)(\(a_1\neq a_2\neq …\neq a_n\),\(n\ge 2\)),从中要选出\(2\)个数\(x,y\)组成无序数对\((x,y)\),共有几种可能?
- 假设\(n=2\),则有一种可能:\((a_1,a_2)\)
- 假设\(n=3\),则有三种可能:\((a_1,a_2),(a_1,a_3),(a_2,a_3)\)
……
和刚才不一样了,但是也是有规律的:比如\(n\)等于\(3\)时,我们发现原来的\(6\)组中,\((a_1,a_2)\)和\((a_2,a_1)\)、\((a_1,a_3)\)和\((a_3,a_1)\)、\((a_2,a_3)\)和\((a_3,a_2)\)是重复的,也就是说,每种情况在排列中都出现了\(2\)次,所以我们的答案应为\(\dfrac{A_3^2}{2}\)。同理,\(n\)去其他数时对应的答案为\(\dfrac{A_n^2}{2}\)。
同样地,若要选出\(3\)个数组成无序数对呢?
我们发现,对于刚刚的有序数对个数\(A_n^3\),假设有\((a_1,a_2,a_3)\)存在,那么一定会有\((a_1,a_3,a_2)\),\((a_2,a_1,a_3)\),\((a_2,a_3,a_1)\),\((a_3,a_1,a_2)\),\((a_3,a_2,a_1)\)这\(5\)种存在,故答案应为\(\dfrac{A_n^3}{6}\)。
到了\(n\)个里选\(m\)个时,在\(A_n^m\)种中,每种相同的数对\((a_1,a_2,…,a_m)\)应出现了\(a_m^m\)次,故答案为\(\dfrac{A_n^m}{A_m^m}\)。所以我们给出组合数的定义:
从\(n\)个不同元素中,任取\(m\)(\(m\le n\)) 个元素组成一个集合,叫做从\(n\)个不同元素中取出\(m\)个元素的一个组合;从\(n\)个不同元素中取出\(m\)(\(m\le n\)) 个元素的所有组合的个数,叫做从\(n\)个不同元素中取出\(m\)个元素的组合数。用符号\(C_n^m\)(或者是\(\dbinom{n}{m}\))来表示。
根据我们刚刚的推导可以得出组合数的公式:\(C_n^m = \dfrac{A_n^m}{A_m^m} = \dfrac{n!}{m!(n-m)!}\)。
特殊地,和排列数一样,\(m>n\)时,\(C_n^m = 0\)。
同时,组合数有这样一个性质:\(C_n^m = C_n^{n-m}\)。不难理解,从\(n\)个中选\(m\)个需要的就等于从\(n\)个中选\(n-m\)个不要的 的方法数。
例3
从\(1\sim 20\)中选出三个数组成等差数列,有多少种不同的等差数列?
解答
假设选出的\(3\)个数为\(a,b,c(a<b<c)\),由于是等差数列,则有\(b-a = c-b\),故\(2b=a+c\),因为\(2b\)为偶数,所以\(a,c\)同奇偶,故应该从\((1,3,5,…,19)或(2,4,6,…,20)\)中选两个为\(a,c\),共\(C_{10}^2*2 = 90\)种
例4
求不定方程\(a_1+a_2+a_3+…+a_m = n(m\le n,m,n\in\N^*)\)的正整数解的个数及非负整数解的个数。
解答
常见结论
用隔板法解决。把\(n\)看做是\(1+1+…+1(n个1)\),把\(m-1\)块隔板放到\(n\)个\(1\)之间的\(n-1\)个空隙中,第\(i\)块隔板与第\(i-1\)块隔板间的数的和为\(a_i\),共\(C_{n-1}^{m-1}\)种。
非负整数解的个数同理,令数列\(b_1,b_2,…,b_m\),其中\(b_i=a_i+1(1\le i\le n)\),则\(a_1+a_2+a_3+…+a_m = n\)非负整数解的个数等于\(b_1+b_2+b_3+…+b_m=n+m\)的正整数解个数,由上一问,为\(C_{n+m-1}^{m-1}=C_{n+m-1}^{n}\)种。
例5(\(\operatorname{CSP-J1}\ \ 2020\),例6例7同)
\(5\)个小朋友并排站成一列,其中有两个小朋友是双胞胎,如果要求这两个双胞胎必须相邻,则有多少种不同排列方法?
解答
枚举双胞胎的位置(\(A,B\)为双胞胎且令\(A\)在\(B\)左边,\(x\)为剩下的人),则共\((A,B,x,x,x),(x,A,B,x,x),(x,x,A,B,x),(x,x,x,A,B)\ \ 4\)种情况,每种情况另外三个人排法为\(A_3^3 = 6\)种,则共\(4*6 = 24\)种,同样,\(B\)在\(A\)左边也有\(24\)种,共\(2*24 = 48\)种。
例6
\(10\)个三好学生名额分配到\(7\)个班级,每个班级至少有一个名额,一共有多少种不同的分配方案?
解答
可以看做是要求不定方程\(a_1+a_2+…+a_7=10\)的正整数解的个数,由例\(4\)公式得有\(C_{10-1}^{7-1}=C_9^6=84\)种。
例7
有五副不同颜色的手套(共\(10\)只手套,每副手套左右手各\(1\)只),一次性从中取\(6\)只手套,请问恰好能配成两副手套的不同取法有多少种。
解答
从\(5\)副手套中选出\(2\)副共有\(C_5^2 = 10\)种方法,从剩下的\(6\)之中选\(2\)有\(C_6^2 = 15\)种,其中刚好凑成一副手套的种数为\(C_3^1=3\)种。由乘法原理,共\(10*(15-3) = 120\)种。
帕斯卡法则
在学习二项式定理前,我们先了解帕斯卡法则。
如果想要算\(C_n^m(m\le n)\),那么对于\(n\)个元素中的任意一个元素\(x\),我们选出的\(m\)个元素有且仅有两种情况:含\(x\)或不含\(x\)。
若含\(x\),那么种数相当于是从剩下的\(n-1\)个数中选出\(m-1\)个(因为\(x\)被选了)的种数;若不含\(x\),则种数为从剩下的\(n-1\)个数中选\(m\)个的种数。
也就是说:对于任意的正整数\(k,n(k\le n)\),都存在:
(也就是\(\dbinom{n}{k}=\dbinom{n-1}{k-1}+\dbinom{n-1}{k}\))
这就是帕斯卡法则。
二项式定理
组合数的另一个重要性质就是二项式定理了。
我们根据帕斯卡法则枚举排列数,得到:(\(P5732\))
(第一行为\(C_1^1\),第二行从左到右依次为\(C_2^1,C_2^2\),…,第\(n\)行从左到右依次为\(C_n^1,C_n^2,…,C_n^n\))
这就是所谓的杨辉三角(或帕斯卡三角)。
也就是说,杨辉三角第\(n\)行的第\(m\)个数等于\(C_n^m\)。
而数学中大家都学过,杨辉三角的第\(n\)行也表示了\((a+b)^n\)展开后的各项系数,如\((a+b)^2 = 1\times a^2+2\times ab+1\times b^2\),系数刚好对应上述杨辉三角的第\(2\)行。结合我们刚刚推出的规律就可以得到二项式定理: