组合数学一课件.ppt
《组合数学一课件.ppt》由会员分享,可在线阅读,更多相关《组合数学一课件.ppt(90页珍藏版)》请在三一办公上搜索。
1、1,组合数学的应用范畴,第一章:排列与组合 第二章:递推关系与母函数 第三章:容斥原理与鸽巢原理 第四章:Burnside引理与Polya定理 第五章:区组设计 第六章:线性规划 第七章:编码简介 第八章:组合算法简介,2,第一章:排列与组合,1.1 基本计数法则1.2 一一对应:1.3 排列与组合1.4 圆周排列1.5 排列的生成算法1.6 允许重复的组合与不相邻的组合1.7 组合意义的解释1.8 应用举例1.9 *Stirling公式,3,1.1基本计数法则,1、加法法则:如果具有性质A的事件有m个,性质B的事件有n个,则具有性质A或B的事件有m+n个。,A和B是性质无关的两个事件。,4,
2、2、乘法法则:若具有性质A的事件有m个,具有性质B的事件有n个,则具有性质A及B的事件有mn个,1.1基本计数法则,5,例1.1 若从合肥到南京有2条路可走,从南京到上海有3条路可走,从上海到杭州有2条路可走,问从合肥经南京、上海到杭州有多少路可走?,1.1基本计数法则,6,例1.2:用乘法法则解释8卦及64卦。,解:1、太极生两仪,3、四象生八卦 000,001,010, 011 100,101,110, 111,2、两仪生四象 00,01,10,11;,1.1基本计数法则,7,例1.3:长度为n的0,1符号串的数目?,例1.4 人类DNA链的长度为2.11010,链上每一位由T,C,A,G
3、四种化合物组成,求人类DNA链的可组成数目。,1.1基本计数法则,8,例1.5:求布尔函数f(x1,x2,xn)的数目,以n=2为例:,f(x1,x2)有四种方式:f(0,0),f(0,1),f(1,0),f(1,1)。,1、f(0,0)=0,f(0,1)=0,f(1,0)=0,f(1,1)=0。,2、f(0,0)=0,f(0,1)=0,f(1,0)=0,f(1,1)=1。,对应着长度为22的字符串,每一位都可以取0或1;,乘法:222,自变量数为n个时:22n,1.1基本计数法则,*,9,1、从n个数中找出最大值问题 2、n个人参加单淘汰赛,最后产生冠军的过程。,1.2 一一对应,10,例1
4、.6:求n2个人站成一排和站成n排(方阵)的方案数,并比较两种方案数的大小?,解:9个人站成一排的方案数是9!,,设a1a2a3a4a5a6a7a8a9是9个人的一排,,可构成一个方阵a1a2a3a4a5a6a7a8a9,给定一个方阵b1b2b3b4b5b6b7b8b9,也唯一确定一排b1b2b3b4b5b6b7b8b9,因此这两种站位方式的方案数一样多,都是9!,1.2 一一对应,11,例1.6:求n2个人站成一排和站成n排(方阵)的方案数,并比较两种方案数的大小?,9个人站成方阵的方案数为:,C(9,3)3!C(6,3)3!C(3,3)3!,1.2 一一对应,12,定理1.1 n个有标号1
5、,2,n的顶点的树的数目等于nn-2。(n=2),1,2,5,3,4,设一棵树的顶点集为A 1、从中找到编号最小的叶子结点,去掉该叶子结点a1及其邻接边(a1,b1)。 2、重复以上过程。只到剩一条边为止。,(1,2),(4,3),(3,2),这棵树对应序列(2,3,2),一个棵对应序列B=b1b2b3bn-2而且是唯一的,1.2 一一对应,13,1,2,5,3,4,树的顶点集合为12345,这棵树对应序列(2,3,2),任给一个序列Bb1,b2,b3,bn-2 1、从A找到最小的不属于B的元素,设为a1,与b1连接,从A中去掉a1,从B中去掉b1. 2、重复以上过程只到B为空,A中剩余两个
6、3、连接剩余的两个顶点。,1.2 一一对应,*,14,1.3:排列与组合,1、排列的定义:设A=a1,a2,an是n个不同的元素的集合,任取A中r个元素按顺序排成一列,称为从A中取r个的一个排列,r满足0rn。,从n个不同的球中取一个球放在第一个盒子中, 从余下的n-1个球中取一个球放在第二个盒子中, 从余下的n-(r-1)个球中取一个放在第r个盒子中。,根据乘法法则: P(n,r)=n(n-1)(n-r+1)=n!(n-r)!,15,全排列:P(n,n)=n(n-1)21=n!,1.3:排列与组合,2、组合的定义:当从n个不同元素中取出r个而不考虑它的顺序时,称为从n中取r个的组合,其数目记
7、为C(n,r)。,公式:从n中取r的组合数记作C(n,r) 从n中取r的排列数是P(n,r)。,C(n,r)=P(n,r)/r! =n!/r!(n-r)!,二者之间的关系:,16,第一章:排列与组合,排列可以看作n个不同的元素放进r个不同的盒子的放法.,组合可以看作n个不同的元素放进r个相同的盒子的放法.,公式1:C(n,r)=C(n,n-r),17,从5个元素中取3个进行排列的算法: int a5=1,2,3,4,5,b3; for(i=0;i5;i+) b0=ai; for(j=0;j5;j+) if (j=i) j+; else b1=aj; for(k=0;k5;k+) if(k=i|
8、k=j) k+; else b2=ak; 打印b,1.3:排列与组合,18,例1.7:由5种颜色的星状物,20种不同的花共25个元素中任取5个排成如下图案:两边是星状物,中间是3朵花,问共有多少种这样的图案?,解1:52019184=136800,20种不同的花取3种排列的排列数为:P(20,3)=20!/17!=20*19*18=6840,根据乘法法则,共有图案数为:6840*20=136800,解2:5种颜色的星状物取两个排列的排列数为 P(5,2)=5!/3!=5*4=20,1.3:排列与组合,19,1.8 随机地选择n个人,求n个人至少有两人生日相同的概率(不考虑润年),解:,n个人生
9、日不同的方案数是:,365*364*(365-n+1)=P(365,n),n个人生日的总方案数是:,365n,至少有两人生日相同的概率: 1-P(365,n)/365n,1.3:排列与组合,*,20,1.4:圆周排列,定义:在排列中,如果我们不横排而是将各元素排列在一个圆周上,那么我们称这种排列方式为圆周排列。,在排列中1234,2341,3412,4123为四个不同的排列,而在圆排列中这些排列是一个.,规定相对位置不变算一个排列。,21,将从n中取r个作圆排列的排列数记作Q(n,r)。,从n中取r个作排列,与圆排列相比,重复了r倍;,公式:Q(n,r)=P(n,r)/r,,Q(n,n)=P(
10、n,n)/n=n!/n=(n-1)!,1.4:圆周排列,Q(n,r)=P(n,r)/r=n!/r(n-r)!,22,例1.19:5颗不同的红色珠子,3颗不同的蓝色珠子装在圆板的四周,试问有多少种方案?若蓝色珠子不相邻又有多少种排列方案?蓝色珠子在一起又如何?,解:(1)Q(8,8)=P(8,8)/8=7!。,(3)蓝色珠子在一起 Q(6,6)3!=5!3!。,(2) 蓝色珠子不在一起。,首先5颗不同的红色珠子作圆排列,共有 Q(5,5)=4!,,3颗不同的蓝色珠子排在红色珠子中间,4!543,1.4:圆周排列,*,23,例1.20:5对夫妇出席一宴会,围一圆桌而坐,试问有几种不同的方案?若要求
11、每对夫妻相邻又有多少种方案?,解: 1)座位无限制 Q(10,10)=P(10,10)/10=10!/10=9!=362880 共有362880种方式。,2)夫妇相邻而坐 首先可以将一对夫妇作为一个元素来看待,共有Q(5,5)=P(5,5)/5=24。,但夫妇可以交换坐位,5对夫妇共有25种方式。,根据乘法法则:若夫妻相邻而坐,共有 2425=2432=768种方式。,1.4:圆周排列,*,24,第一章:排列与组合,多重集的排列,设S是一个多重集,有K个不同类型的元素,各元素的重复分别为n1,n2,nk,n=n1+n2+nk,则S的排列数为:,25,第一章:排列与组合,证明:给定多重集S,有k
12、种类型的元素,比如说a1,a2,a3,ak,且分别有重数n1,n2,nk,元素的总个数n=n1+n2+nk,现在存在n个位置,我们要在n个位置放S的一个元素,首先要确定哪些位置放a1的元素,共有,剩下n-n1个位置, a2的元素,共有,.,剩下n-n1-nk-1个位置, ak的元素,共有,26,第一章:排列与组合,根据剩法法则:,S的排列的总数,27,练习题,1、求1040和2030的公因数的数目。,解:1040=240540,2030=260530,C(41,1)*C(31,1),28,2、试证n2的整除数的数目是奇数。,练习题,29,1.13、有n个不同的整数,从中取出两组来,要求第1组的
13、最小数大于另一组的最大数。,设取的第一组数有a个,第二组有b个,要求第一组数中最小数大于第二组中最大的,,即只要取出一组m个数(设m=a+b),从大到小取a个作为第一组,剩余的为第二组。,此时方案数为C(n,m)。,从m个数中取第一组数共有m-1中取法。,(m-1)C(n,m),练习题,30,练习题,31,第一章:排列与组合,1.1 基本计数法则1.2 一一对应:1.3 排列与组合1.4 圆周排列1.5 排列的生成算法1.6 允许重复的组合与不相邻的组合1.7 组合意义的解释1.8 应用举例1.9 *Stirling公式,32,1.5 排列的生成算法:,排列的生成算法: 对于给定的字符集,用有
14、效的方法将所有可能的排列无重复无遗漏地枚举出来。,3阶幻方九宫图,33,从5个元素中取3个进行排列的算法: int a5=1,2,3,4,5,b3; for(i=0;i5;i+) b0=ai; for(j=0;j5;j+) if (j=i) continue; else b1=aj; for(k=0;k5;k+) if(k=i|k=j) continue; else b2=ak; 打印b,1.3:排列与组合,34,n个元素的全排列有n!个,从0到n!-1共n!个数。,序数法的思想:,n个元素的全排列与n!个数一一对应。,序数法找到了一种n!个数直接计算出n!个排列的算法:,1、0到n!-1这n
15、!个数与如下序列一一对应:,(an-1,an-2,a1) 0aii;,2、从每一个这样的序列我们可以生成一个排列。,一、序数法,35,公式:n!-1=(n-1)(n-1)!+(n-2)(n-2)!+22!+ 11!,等同于:n!=(n-1)(n-1)!+(n-2)(n-2)!+22!+ 11!+1,一般: (k-1)(k-1)!+(k-1)!=k! (n-2)(n-2)!+(n-2)!=(n-1)! (n-1)(n-1)!+(n-1)!=n!,一、序数法,36,定理3:令n0,0mn!-1,则m可以唯一地表示为:m=an-1(n-1)!+an-2(n-2)!+a11! 其中:0aii, i=1
16、, 2, , n-1。(一) ai由m唯一确定。 (二) 反过来,任何满足上式的数m都是一个大于或等于0,小于或等于n!-1的数。 (三),最大值是:,最小值是:,0(n-1)!+0(n-2)!+ 01!=0,因此:(三)成立,(n-1)(n-1)!+(n-2)(n-2)!+22!+ 11!=n!-1,一、序数法,37,证明:(二)唯一表示性,设m=an-1(n-1)!+an-2(n-2)!+a11! m=bn-1(n-1)!+bn-2(n-2)!+b11!,显然a1=b1,如果一直到an-1 =bn-1,定理得证:,否则令k=mini,aibi ,那么: ai=bi ,当ik时,如果两边同时
17、除以(k+1)!,我们可以看到等式左边余数为akk!,等式右边余数为bkk!,由akbk,与假设予盾,因此表示法是唯一的。,一、序数法,38,证明:(一)可表示性,怎样求序列an-1, an-2, a1,m=an-1(n-1)!+an-2(n-2)!+a2 2!+ a1 1!,数m除以2的整数部分与余数是什么?,整数部分是:an-1(n-1)!/2+ +a3 3!/2 +a2,余数是a1,如果用m除以2的整数部分再除以3,余数就是a2,其它项以此类推。,一、序数法,39,例 1: 将m=4000展开。40007!=5040解: b=4000,a1=b%2=0; b=b/2=2000;,a2=b
18、%3=2; b=b/3=666;,a3=b%4=2; b=b/4=166; a4=b%5=1; b=b/5=33; a5=b%6=3; b=b/6=5; a6=b%7=5; b=b/7=0;,4000=5*6!+3*5!+1*4!+2*3!+2*2! +0*1!,40005,3,1,2,2,0,一、序数法,40,int a=0;int m,n;/ 0=m=n!-1int b=m;int index =1; do aindex=b%(index+1); b = b/(index+1); index+; while(b);,推论 从0到n!-1的n!个整数与序列an-1, an-2, a1一一对应
19、。这里 0a1 1,0 a2 2, , 0 an-1 n-1,算法:,一、序数法,41,例2:对于0 m 23=4!-1,m可以展开为: m=a33!+a2 2!+a1 1!。 求所有的序列a3, a2,a1 ;,解: 0000, 1001, 2010, 3011, 4020, 5021, 6100, 7101, 8110, 9111, 10120, 11121, 12101, 13201, 14210, 15211 16220, 17221, 18300, 19301, 20301, 21311, 22320, 23321,一、序数法,42,怎样建立a(3)a(2)a(1)p(1)p(2)p
20、(3)p(4)a(3) 确定4的位置,a(2)确定3的位置a(1)确定2的位置,剩余的位置就是1的位置,例3:021,3,2,1,4,一、序数法,例3: 201,4,3,2,1,43,求n个不同的数的全排列,主要有以下两步:,1、求出0到n!-1之间各数对应的序列an-1, an-2, a1 m=an-1(n-1)!+an-2(n-2)!+a2 * 2!+a1*1!,2、由an-1, an-2, a1确定排列序列p1p2pn,an-1,确定n的位置, an-2确定n-1的位置, a1确定2的位置, 剩下的是1的位置。,一、序数法,44,int result17 = 0 ; /记录排序int a
21、17 = 0 ; /记录序列void permute( int n) int fact = 1,i; for( i = 1; i = n; i+ ) fact *= i;/求n的阶乘,1、求阶乘,一、序数法,2022/12/5,45,可编辑,46,for( i = 0; i fact; i+ ) int b=i, index =1; do aindex=b%(index+1); b = b/(index+1); index+; while(b);,2、对于0,1,2,n!-1共n!个数求序列ai,一、序数法,47,int j=0;for(j=n-1;j0;j-)index=n; int spa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组合 数学 课件
链接地址:https://www.31ppt.com/p-1557710.html