1 / 13

第七章 组合数学

第七章 组合数学. 组合数学的两个重要问题: 计数、枚举 在计算机科学中的应用: 算法的时间复杂性分析、 密码学、 IP 地址 某些算法. 7.1 基本的计数原则 加法原理 :完成一个任务有两类方式,分别各有 m 和 n 种方法,则完成该任务的方法数是 m+n  A1∪A2  =  A1  +  A2  ( A1∩A2=  ) 加法原理可推广到多类方式或多个集合的情况 注意加法原理中,各类方式或各个集合之间的不交要求 乘法原理 :一个任务的实施可以分解为两个独立的步骤,分别各有 m 和 n 种方法, 则完成该任务的方法数是 m*n

Download Presentation

第七章 组合数学

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 组合数学 组合数学的两个重要问题:计数、枚举 在计算机科学中的应用: 算法的时间复杂性分析、 密码学、 IP地址 某些算法

  2. 7.1基本的计数原则 • 加法原理:完成一个任务有两类方式,分别各有m和n种方法,则完成该任务的方法数是m+n  A1∪A2=A1+A2(A1∩A2=) • 加法原理可推广到多类方式或多个集合的情况 • 注意加法原理中,各类方式或各个集合之间的不交要求 • 乘法原理:一个任务的实施可以分解为两个独立的步骤,分别各有m和n种方法, 则完成该任务的方法数是m*n  A1×A2=A1*A2

  3. 例8 计数函数。从一个n元集到一个m元集存在多少个函数? 解 一个函数对于定义域中m个元素中的每个元素都要选择倍域中n个元素中的一个元素来对应。因此,由乘积法则存在n*n*…*n= nm个从m元集到n元集的函数。 • 例9 一对一函数。 从一个m元素集合到一个n元素集合存在多少个一对一函数? 解 首先注意到当m>n时没有从m元集到n元集的一对一函数。现在令mn。假设定义域中的元素是a1 ,a2 , … ,am。有n种方式选择函数在a1的值。因为函数是一对一的,可以有n-1种方式选择函数在a2的值。一般地,有n-k+1种方式选择函数在ak的值。由乘积法则,从一个m元素集合到一个n元素集合存在着n(n-1)(n-2)…(n-m+1)个一对一函数。

  4. 例10 IP地址的计算 因特网上的计算机有多少不同的有效IPv4地址? 解 令X是因特网上计算机的有效地址数,XA , XB 和XC 分别表示A类、B类和C类的有效地址数。由求和法则,X= XA + XB + XC。 (接下页)

  5. (接上页) 为了找到XA , 由于1111111是无效的,故存在27 -1=127个A类的网络标识。对于每个网络标识,存在224-2=16 777 214个主机标识,这是由于全0和全1组成的主机标识是无效的。因此,XA =127*16 777 214=2 130 706 178。 为了找到XB 和 XC ,首先注意到存在214=16 384个B类网络标识和212=2 097 152个C类网络标识。对每个B类网络标识存在着216-2=65 534个主机标识,而对每个C类网络标识,存在28-2=254个主机标识,这也是考虑到全0和全1是无效的主机标识。因而, XB =1 073 709 056,XC=532 676 608。我们可以断言IPv4有效地址的总数是: X= XA + XB + XC=2 130 706 178+1 073 709 056+532 676 608=3 737 091 842。

  6. 7.2基本(不可重复)的排列与组合问题 • 集合的r-排列:集合中的r个元素的有序序列 A=n,A的r-排列数P(n, r)=n(n-1)…(n-r+1)= • 集合的r-组合:集合的r个元素的子集 A=n,A的r-组合数C(n, r)= P(n, r)/n!= C(n, r)= C(n, n-r)

  7. 关于二项式系数:注意它们的组合意义 • C(n+1, k)= C(n, k-1)+C(n, k) (帕斯卡恒等式) • C(m+n, r)=(范德蒙恒等式) • (二项式定理)

  8. 7.3可重复的排列和组合问题 • 定理2 A=n,A的允许重复(重复次数没有限制)的r-组合数是C(n+r-1, r) 证明:当允许重复时n元素集合的每个r-组合可以用n-1条竖线和r颗星的表表示。这n-1条竖线是用来标记n个不同的单元。每当集合的第i个元素出现在组合中,第i个单元就包含一颗星。例如,4元素集合的一个6-组合用3条竖线和6颗星来表示。这里* | * | | * * * 代表了恰包含2个第一元素、1个第二元素、0个第三元素和3个第四元素的组合。 正如我们已经看到的,包含n-1条竖线和r颗星的每一个不同的表对应于n元素集合的允许重复的一个r-组合。这种表的个数是C(n+r-1, r),因为每个表对应于从包含r颗星和n-1条竖线的n-1+r个位置中取r个位置来访r颗星的一种选择。

  9. 例5 设一家甜点店有四种不同类型的甜点,那么从中选6块甜点有多少种不同的方式 ?假定只关心甜点的类型,而不管是哪一块甜点或者选择的次序。 解 选择6块甜点的方式数是具有4类元素集合的6-组合数。由定理2,这等于 C(4+6-1, 6)=C(9,6) 由于C(9,6)=C(9,3)=(9*8*7) / (1*2*3) = 84 选择6块甜点的不同方式数有84种。 • 例6 方程x1+x2+x3=11有多少个解?其中x1,x2和x3是非负整数。 解 为计数解的个数,注意到一个解对应了从3元素集合中选11个元素的方式,以使得x1选自第一类,x2选自第二类,x3 选自第三类。因此,解的个数等于3元素集合允许重复的11-组合数。由定理2存在 C(3+11-1, 11)=C(13,11)=C(13,2)=(13*12) / (1*2)=78 个解。

  10. 例7 在下面的伪码被执行后k的值是什么? k:=0 for i1:=1 to n for i2:=1 to i1 …… for im :=1 to im-1 k:=k+1 解: k的初值是0,且对于一组满足 1≤im≤im-1≤ … ≤i1≤n 的整数i1,i2,… im,,每次执行这个嵌套循环时k的值就加1. 这种整数的组数是从{1,2, …,n}中允许重复地选择m个整数的方式数.(因为一旦这组整数选定以后,如果按非降序排列它们,这就唯一地确定了一组对im ,im-1, … , i1的赋值。相反,每个这样的赋值对应了一个唯一的无序集合。)所以由定理2得出在代码被执行后k=C (n+m-1, m)。

  11. 定理3 n1个1类物体,n2个2类物体,…,nk个k类物体, n=ni这n个物体的全排列数是 证明:分别确定每类物体的排列位置,再用乘法原则 为确定排列数,首先注意到可以用C(n, n1)中方式在n个位置中方类型1的n1个物体,剩下n- n1个空位。然后用C(n-n1,n2)种方式来放类型2的物体,剩下n-n1- n2个空位。继续放类型3的物体,…,类型k-1的物体,直到最后可用C(n-n1-n2- … - nk-1,nk)种方式放类型k的物体。因此,由乘积法则,不同排列的总数是 C(n,n1) C(n-n1 ,n2)…C(n-n1-n2- … - nk-1,nk) = * * … * =

  12. 定理4 n=ni个不同物体,放入k个盒子,第1个盒子n1个,第2个盒子n2个,…,第k个盒子nk个, 方法数是 证明:先对n个物体(任意)排序。为第i个盒子设计ni个相同的标记,对这n个标记做全排,根据全排列的结果分配物体入盒子 • 例11 有多少种方式把52张标准的扑克牌发给4个人使得每人5张牌? 解 我们将使用乘积法则求解这个问题。开始,第一个人得到5张牌可以有C(52,5)种方式。第二个人得到5张牌可以有C(47,5)种方式,因为只剩下47张牌。第三个人得到5张牌可以有C(42,5)种方式。最后,第四个人得到5张牌可以有C(37,5)种方式。因此,发给4个人5张牌的方式总数是 C(52,5) C(47,5) C(42,5) C(37,5)= * * * =

  13. 习题 1.从集合{1,2,…,n}到集合{1,0}有多少个函数?这里的n是正整数。 2.使用乘积法则证明对于n个变量的命题存在 个不同的真值表。 3. 方程x1+x2+x3+x4+x5+x6 =29有多少个解?其中xi(i=1,2,3,4,5,6)是非负整数,并且使得 a) x15 b) x1<8, x2>8 4.在(x1+x2+…+xm)n 的展开式中把所有的同类项合并以后有多少个不同的项?

More Related