组合数学第一章复习

从广义上讲组合数学就是离散数学。

1.1 基本计数法则

加法法则

若 |A| = m , |B| = n , A B = , 则 |A B| = m + n 。

乘法法则

若 |A| = m , |B| = n , AxB = {(a,b) | a A,b B}, 则 |A x B| = m · n 。

【例】求小于10000的含1的正整数的个数。

  • 小于10000的不含1的正整数可看做4位数,但0000除外
  • 小于10000的不含1的正整数的个数有 9 4 1 = 6560
  • 小于10000的正整数的个数有 10 4 1 = 9999
  • 小于10000的含1的正整数的个数:9999-6560=3439

【例】求小于10000的含0的正整数的个数

  • 不含0的1位数有9个,2位数有 9 2 个,3位数有 9 3 个,4位数有 9 4 个 ,共7380个
  • 小于10000的含0的正整数的个数为:9999-7380=2619

1.2 一一对应

【例】n个人参加单淘汰赛,最后产生冠军的过程,需要多少场比赛?

  • 比赛的台数和每一场淘汰一名选手一一对应
  • 答案:n-1
    【例】求 n 2 个人站成n排的方案数

  • 站成n排和站成1排一一对应

  • 答案: n 2 !

【定理】带n个有标号1,2,…,n的顶点的树的数目等于 n n 2 (n>=2)
这里写图片描述

1.3 排列与组合

排列的定义

设A={a1,a2,…,an}是n个不同的元素的集合,任取A中r个元素按顺序排成一列,称为从A中取r个的一个排列,其数目记为P(n,r) ,r满足0≤r≤n。
排列可以看作n个不同的元素取r个放进r个不同的盒子的放法.

  • 从n个不同的球中取一个球放在第一个盒子中,
  • 从余下的n-1个球中取一个球放在第二个盒子中,
  • …………………………………
  • 从余下的n-(r-1)个球中取一个放在第r个盒子中

根据乘法法则:
P(n,r)=n(n-1)…(n-r+1)=n!/(n-r)!
全排列:P(n,n)=n(n-1)…2×1=n!

组合的定义

当从n个不同元素中取出r个而不考虑它的顺序时,称为从n中取r个的组合,其数目记为C(n,r)。
因为组合不考虑顺序,所以组合数会比排列数少很多。
C(n,r)=P(n,r)/r! =n!/[r!(n-r)!]
C(n,r)=C(n,n-r)

圆周排列的定义

在排列中,如果我们不横排而是将各元素排列在一个圆周上,那么我们称这种排列方式为圆周排列。规定相对位置不变算同一个圆周排列。将从n中取r个作圆排列的排列数记作Q(n,r)。
在排列中1234,2341,3412,4123为四个不同的排列,而在圆周排列中这些排列是一个。
从n中取r个作排列,与圆排列相比,重复了r倍
Q(n,r)=P(n,r)/r
Q(n,r)=P(n,r)/r=n!/r(n-r)!
Q(n,n)=P(n,n)/n=n!/n=(n-1)!
这里写图片描述
【例】5对夫妇出席一宴会,围一圆桌而坐,试问有几种不同的方案?若要求每对夫妻相邻又有多少种方案?

  • (1)Q(10,10)
  • (2)Q(5,5)* 2 5

1.4 多重集的排列

设S是一个多重集,有K个不同类型的元素,各元素的重复分别为n1,n2,…,nk,n=n1+n2+…+nk,则多重集S的全排列数为: n ! n 1 ! n 2 ! . . . n k !

证明:由 C n n 1 C n n 1 n 2 C n n 1 n 2 n 3 . . . C n n 1 n 2 . . . n k 1 n k 化简而得。

【例】求 10 40 20 30 的公因数的数目。

  • 10 40 = 2 40 5 40
  • 20 30 = 2 60 5 30
  • 公因式形如 2 i 5 j 0 i 40 , 0 j 30
  • 公因式数目41X31

【例】有n个不同的整数,从中取出两组来,要求第1组的最小数大于另一组的最大数,求满足条件的所有取法的数量。

  • 只要从n个数中取出一组m个数(设m=a+b, 2 m n ),此时方案数为C(n,m)
  • 将m个数从大到小取a个( a 1 )作为第一组,剩余的(剩下b个, b 1 )为第二组。从m个数中取第一组数共有m-1中取法。
  • 答案: m = 2 n ( m 1 ) C ( n , m )

1.5 排列的生成算法

对于给定的字符集,用有效的方法将所有可能的排列无重复无遗漏地枚举出来。

序数法

【思想】n个元素的n!个全排列与n!个数一一对应。
【定理】令 n 0 0 m n ! 1 ,则m可以唯一地表示为:
m = a n 1 ( n 1 ) ! + a n 2 ( n 2 ) ! + + a 1 ( 1 ) !
其中: 0 a i i , i = 1 , 2 , , n 1 。反之,任何满足上式的数m都是一个满足[0,n!-1]的数。

这里写图片描述

字典序法

【思想】对于n个字符(元素)的任何二个排列,我们都可以直接比较它的大小。
【步骤】
1. 从排列的末尾开始,逐步向前搜索,直到找到比其后面相邻的数小的数;
如果未找到,表明不再有下一个排列,程序终止;
2. 从该数后面的序列中寻找比该数大的最小的(最靠后的)数来替换它(使用交换);
3. 将余下的数反转。

【例】求排列839647521在字典序中的下一个排列。

  • 找到前面数小于相邻后面数的最后一个,4
  • 4与后面比它大但(位置最靠后)最小的数交换,5
  • 此时5右边为7421,倒置为1247,即得下一个排列:839651247。

组合的生成算法

从1,2,…,n这n个元素中取出r个组合,用c1,c2,…,cr表示,
假定 c 1 < c 2 < . . . < c r
那么 c r n c r 1 n 1 . . . c 1 n r + 1
当存在 c j < n r + j 时,找出下标最大值设为i,从 c i + 1 替换 c i
如果 i < r ,再用 c i + 1 = c i + 1 c i + 2 = c i + 1 + 1 . . . c r = c r 1 + 1
【例】从1,2,3,4,5,6中取3个的组合

  • 456是最后一个
  • 256在字典序中的下一个组合是345( ci=2,2修改为3,后边两位改为4,5,得345)
  • 345在字典序中的下一个组合是346( ci=5,5修改为6,得346)

1.6 允许重复的组合

【定理】在n个不同的元素中取r个进行组合,若允许重复,则组合数为C(n+r-1,r)。
从n个不同元素中取r个作允许重复的一个组合<=>从n+r-1个不同元素中取r个作不允许重复的一个组合

【例】x1+x2+…+xn=b,n是正整数,b都是非负整数,求方程的非负整数的解的个数。

  • 方程的非负整数的个数与b个无标志的球放进n个有区别的盒子的情况一一对应。
  • 答案:C(n+b-1,b)

1.7 组合的解释

【例】路径数问题:如图从(0,0)点出发沿x轴或y轴的正方向每步走一个单位,最终走到(m,n)点,问有多少条路径。

  • 无论怎样走法,在x方向上总共走m步,在y方向上总共走n步,若用一个字母x表示当前在x方向上走一步,一个字母y表示当前在y方向上走一步:
  • (0,0)→(m,n)的每一条路径可表示为包含m个x与n个y的一个序列;
  • 答案:C(m+n,m)=C(m+n,n)

这里写图片描述
【例】7位科学工作者从事一项机密的技术研究,他们的实验室门上挂有多把锁,每位参加该项工作的人都有若干把打开锁用的钥匙,为了安全起见,要保证必须有4人到场方可打开实验室的门( 只有3人到场一定打不开,且4人到场一定可以打开),试问:
①门上至少要挂上多少把锁?(总共至少有多少把不同的钥匙?)
②每人至少需持几把钥匙?

  • 第一问:每3人至少缺1把钥匙,每3人所缺钥匙必须不相同(反证法证明),答案:C(7,3)=35
  • 第二问:任1人对于其他6人中的每3人,都至少有1把钥匙与之相配才能开锁,不存在有1人对于其他6人中的两组,都用一把钥匙相配这种情况(反证法证明),答案:C(6,3)=20

猜你喜欢

转载自blog.csdn.net/weixin_38493025/article/details/80756005
今日推荐