组合数学一.前言我们已经在数学课上学习了有关排列与组合的一些知识。
实际上,这些只是组合数学这一数学大家庭中的沧海一粟。
广义的组合数学等价于整个离散数学,囊括了离散计数、图论、整数规划等等繁杂且深奥的内容。
组合数学来源于实际,不少的讨论引人入胜,也有不少的讨论让人抓狂。
本文将结合部分我们做过的数学作业中的题目,对他们进行深入讨论,并给出更通用更简便的解法,并推及一般。
二.基础知识1.一一对应生活中有许多有关“一一对应”的例子:“一个萝卜一个坑”,立方烷的二氯代物同分异构体数等于立方烷的六氯代物同分异构体数。
一一对应是对于两个集合而言的。
如果两个集合构成了一一对应关系,那么这两个集合的元素数量一定相等。
这是一一对应最基本的性质。
一般的,若满足性质α的集合A 与满足性质β的集合B 构成一一对应关系,则一定有:∀a ∈A ,∃!b ∈B ,a →b∀b ∈B ,∃!a ∈A ,b →a其中∃!的含义为“存在唯一的”。
上面的两个关系式为使A 和B 一一对应的充要条件。
我们知道组合数的一个性质:C n +m m =C n +m n ,下面我们用一一对应的观点解释这一性质。
有(n+m)个人排成一队,选取m 个人向前一步,并将行从前向后编号1和2,这所有的情况构成集合A 。
同样的,选取n 个人向前一步,并将行从前向后编号1和2,这所有的情况构成集合B 。
对于A 中的任何一种情况,将行编号调换,一定可以得到一个B 中的元素;同样的,对于B 中的任何一种情况,将行编号调换,一定可以得到一个A 中的元素。
所以集合A 与集合B 构成了一一对应关系。
那么A 的元素数量一定等于B 的元素数量。
一一对应是计数问题的一个利器。
它可以将较难的计数问题转化为另一个较简单的计数问题。
使用一一对应时,一定要确定两个对象满足了上述的两个要求。
2.组合的几何意义1)组合的几何意义C n +m m 表示在一个n 行m 列的方格图中,从左下角走到右上角,期间只能向上或向右走的方案数。
证明:从(0,0)走到(n,m)需要走(n+m)步,在这(n+m)步之中选取m 步向上走,其余向右走,共C n +m m 种取法。
每一个这样的选取对应一个从(0,0)走到(n,m)的方案,而每一个从(0,0)走到(n,m)的方案对应一个这样的选取。
于是,我们确定了这两者的一一对应关系,也就确定了它们之间的数字关系。
2)应用组合的几何意义大多用来加深对组合性质与运算的理解,并简化一些复杂组合公式的证明的过程,使之更加容易接受。
例2-2-1.C n r =C n−1r +C n−1r−1(杨辉三角)C n r 看作是(0,0)点到(n −r,r)点的路径数,C n−1r 看作是(0,0)点到(n −r −1,r)点的路径数,C n−1r−1看作是(0,0)点到(n −r,r-1)点的路径数。
即从(0,0)点到(n −r,r)点的路径由两部分组成,一部分是从(0,0)到(n −r,r −1)点再向y 轴方向走一步;另一部分是从(0,0)点到(n −r −1,r)点的路径,再向x 轴方向走一步。
例2-2-2.C m 0+C m 1+C m 2+⋯+C m m =2m从(0,0)点出发到(m,0)和(0,m)点连线上诸点的路径总和为2m。
或理解为2m个人从(0,0)点分两批,每批2m−1个人,每到十字路口上又均分为二,最后走m条路在(m−k,k)点汇合。
我们可以看出,对于每个独立的“批”,走m步后一定只会剩下一个人,每个人走的路径均不相同,在(m−k,k)点汇合的人数正好是从(0,0)点到(m−k,k)点的不同路径数,即C m k。
例2-2-3.从(0,0)点到达(m,n)点,其中m<n,要求中间经过的路径上的点(a,b)恒满足a<b。
问有多少不同的路径。
这道题实际上是非齐次递推组合数Catalan数的经典模型。
但我们在这里从另一个角度入手。
m。
现在加上一个条件:不接触到y=x上前面给出了(0,0)点到(m,n)点的路径数为C m+n的点,当然更不能穿过这条直线。
也就是说,从(0,0)点第一步必须到(0,1)点,而不允许到(1,0)点。
那么,问题也可以提为从(0,1)点到(m,n)点的路径,路径上各点(a,b)均满足a<b 的路径数。
由于m<n,显然从(1,0)点到(m,n)点的每一条路径必然穿过y=x上的格子点。
下面建立起从(1,0)点到(m,n)点的每一条路径,与从(0,1)点到(m,n)点但经过y=x线上的格子点的路径之间的一一对应关系:若从(1,0)点到(m,n)点的某一条路径与y=x的交点从左到右依次为P1, P2, … , P k。
设P k 是最后一个在y=x上的格子点。
作(0,1)点到P k点的一条道路(实线),使之与上述的从(1,0)点到P k点的路径(虚线)关于直线y=x对称。
于是我们建立了从(1,0)点到(m,n)点的每一条路径,与从(0,1)点到(m,n)点但经过y=x线上的格子点的路径(即不合题的路径)之间的一一对应关系。
故所求路径数为:C m +n−1m −C m +n−1m−1= m +n −1 !(n −m ) 有关组合的几何意义的讨论这里就点到为止,而大家对它的理解可以在以后的数学学习中积累深化。
当大家对一个组合问题摸不到头脑的时候,不妨尝试一下。
三.特殊要求的排列与组合1.圆周排列如果在一个圆周上讨论排列问题即将一排列排到圆周上,称之为圆周排列问题,而我们学过的排列是排成一列。
从n 个中取r 个在圆周上进行排列数以Q n r 表示。
圆周排列与排列不同之处在于圆周排列头尾相邻,比如四个元素a, b, c, d 的排列abcd, dabc, cdab, bcda 是不同的排列,但将它们排在圆周上,其实是一回事。
而且不难理解:Q n r =A n r r即对于一个排列(a 1 , a 2 , . . . , a r ),每次将最后的元素移到前面,可以得到一个与之前的不同的排列,但是它在圆周上和原排列相同。
这样的步骤对一个排列可以做r 次。
2.允许重复的组合与不相邻的组合1)允许重复的组合先来看一个我们已经非常熟悉,但如今推广到一般的题目:例3-2-1.求方程x 1+x 2+⋯+x n =b (b ≥1,n ≥1)的非负整数解的个数。
我们自然想到“非标准插板”模型。
首先将左边每个变量加上1,得到(x 1+1)+(x 2+1)+⋯+(x n +1)=b +n (b ≥1,n ≥1)代换,于是原问题等价于求方程x 1+x 2+⋯+x n =b +n (b ≥1,n ≥1)的正整数解个数。
不难得出答案为:C n +b−1n−1 让我们再次审视一下这道题,它等价于:将相同的b 个球放入不同的n 个盒子,允许有空盒的方法总数。
根据上面的答案,我们得到:允许重复的组合公式:在n 个不同元素中取b 个作允许重复的组合,其组合数为C n +b−1b例3-2-2.求方程(x +y +z )4的项数 题目等价于:四个无标识的球,放进三个有标识的x, y, z 的盒子,允许有空盒的方案。
这是允许重复的组合模型。
答案为:C 4+3−14=15例3-2-3.求方程x 1+x 2+⋯+x n =b (b ≥n ≥1)的正整数解个数。
这是“标准插板”模型,但我们用允许重复的组合模型来解决。
允许重复的组合要求可以有空盒,而对于这些x 的盒子而言不能有空盒。
我们可以先拿出n 个球来,n 个盒子里每个放入一个球,还剩(b − n)个球。
再用这剩下的(b − n)个球做允许重复的组合:C b−n +n−1b−n =C b−1n−1等式右面的式子就是我们熟悉的标准插板模型。
2)不相邻的组合所谓不相邻的组合是指从A={1, 2, …, n}取r 个不相邻的数的组合,即不存在相邻两个数j 和j+1的组合。
也就是说,(1 , 3 , 5 , 7 , 9) 是合乎要求的,而 (1 , 2 , 4 , 6 , 8) 就不是。
从A={1, 2, …, n}中取r 个做不相邻的组合,其组合数为C n−r +1r证:我们只要证明:在n 个元素中取r 个的不相邻的组合,与 (n − r + 1) 个元素中取r 个的组合一一对应。
设 (b 1 , b 2 , … , b r ) 是一个不相邻的组合,不妨设 b 1 < b 2 < … < b r ,令 c 1 = b 1 , c 2 = b 2− 1 , c 3 = b 3− 2 , … , c r = b r − r + 1 ,那么 (c 1 , c 2 , … , c r ) 就是一个允许相邻的一般组合。
如不允许重复的组合 (1 , 3 , 5 , 7) ,在进行上述运算后变成了 (1 , 2 , 3 , 4)。
于是,每个在n 个元素中取r 个的不相邻的组合,对应一个 (n − r + 1) 个元素中取r 个的组合。
反之,也可以证明后者对前者的对应关系,只要将上述运算反过来即可。
例3-2-4.一排九个椅子,有六个人就坐,要求每个空椅子两侧均有人,求安排位置的方案数。
首先,两则的椅子一定不能为空,剩下七个椅子,选出三个不相邻的椅子让它们为空。
这是不相邻的组合问题。
答案为:C 7−3+13A 663.允许重复的排列与不相邻的排列我们已经接触过允许重复的排列。
假定在n 个元素中(允许有相同元素)取m 个做允许重复的排列。
其中第i 种元素有m i 个,则可重复的排列数为:A m 1m 2…m km =m !m 1!m 2!…m k ! 而不相邻的排列则更加简单:从A={1, 2, …, n}中取r 个做不相邻的排列,其排列数为A n−r +1r四.Stirling number 与容斥原理初步例4-1-1.将n 个有区别的球放入m 个有标志的盒子,要求盒子中的球数依次为n 1 , n 2, … , n m , n 1+n 2+…+n m =n ,其方案数用n n 1n 2…n m表示。
称 n n 1n 2…n m 为多项式(x 1+x 2+⋯+x m )n 的多项式系数。
求它的值。
从n个有区别的球中取n1个放入第一个盒子,其选取方案数为:C n n1当第一个盒子的n1选定之后,第二个盒子的n2个球则是从余下的n− n1个球中选取的,其方案数则为C n−n1n2同理,第k个盒子的n k个球的选取方案数为C n−n1−n2−⋯−n k−1n k依据乘法原理得到nn1n2…n m =C n n1C n−n1n2…Cn−n1−n2−⋯−n m−1n m=n!12m上式可以理解为:将n个球进行全排列,取前n1个放进第一个盒子,再n2个放进第二个盒子……但是盒子内的球是无序的,所以要除以n i!。