离散数学-耿素云PPT(第5版)8.3
合集下载
离散数学第8章课件PPT,高等教育出版社,屈婉玲,耿素云,张立昂主编

17
证明
(2) 假设存在x1, x2∈A使得 由合成定理有 f g(x1)=f g(x2)
g(f(x1))=g(f(x2)) 因为g:B→C是单射的, 故 f(x1)=f(x2). 又由于f:A→B是单射的, 所 以x1=x2. 从而证明f g:A→C是单射的. (3)由(1)和(2)得证. 注意:定理逆命题不为真, 即如果f g:A→C是单射(或满射、双 射)的, 不一定有 f:A→B 和 g:B→C都是单射(或满射、双射)的.
16
函数复合与函数性质
定理8.2 设f:A→B, g:B→C (1) 如果 f:A→B, g:B→C是满射的, 则 fg:A→C也是满射的 (2) 如果 f:A→B, g:B→C是单射的, 则 fg:A→C也是单射的 (3) 如果 f:A→B, g:B→C是双射的, 则 fg:A→C也是双射的 证 (1) 任取c∈C, 由g:B→C的满射性, b∈B使得 g(b)=c. 对于这个b, 由 f:A→B的满射性,a∈A使得 f(a)=b. 由合成定理有 fg(a) = g(f(a)) = g(b) = c 从而证明了fg:A→C是满射的
4
实例
例1 设A={1,2,3}, B={a,b}, 求BA. 解BA={ f0, f1, … , f7}, 其中 f0 = {<1,a>,<2,a>,<3,a>} f1 = {<1,a>,<2,a>,<3,b>} f2 = {<1,a>,<2,b>,<3,a>} f3 = {<1,a>,<2,b>,<3,b>} f4 = {<1,b>,<2,a>,<3,a>} f5 = {<1,b>,<2,a>,<3,b>} f6 = {<1,b>,<2,b>,<3,a>} f7 = {<1,b>,<2,b>,<3,b>}
证明
(2) 假设存在x1, x2∈A使得 由合成定理有 f g(x1)=f g(x2)
g(f(x1))=g(f(x2)) 因为g:B→C是单射的, 故 f(x1)=f(x2). 又由于f:A→B是单射的, 所 以x1=x2. 从而证明f g:A→C是单射的. (3)由(1)和(2)得证. 注意:定理逆命题不为真, 即如果f g:A→C是单射(或满射、双 射)的, 不一定有 f:A→B 和 g:B→C都是单射(或满射、双射)的.
16
函数复合与函数性质
定理8.2 设f:A→B, g:B→C (1) 如果 f:A→B, g:B→C是满射的, 则 fg:A→C也是满射的 (2) 如果 f:A→B, g:B→C是单射的, 则 fg:A→C也是单射的 (3) 如果 f:A→B, g:B→C是双射的, 则 fg:A→C也是双射的 证 (1) 任取c∈C, 由g:B→C的满射性, b∈B使得 g(b)=c. 对于这个b, 由 f:A→B的满射性,a∈A使得 f(a)=b. 由合成定理有 fg(a) = g(f(a)) = g(b) = c 从而证明了fg:A→C是满射的
4
实例
例1 设A={1,2,3}, B={a,b}, 求BA. 解BA={ f0, f1, … , f7}, 其中 f0 = {<1,a>,<2,a>,<3,a>} f1 = {<1,a>,<2,a>,<3,b>} f2 = {<1,a>,<2,b>,<3,a>} f3 = {<1,a>,<2,b>,<3,b>} f4 = {<1,b>,<2,a>,<3,a>} f5 = {<1,b>,<2,a>,<3,b>} f6 = {<1,b>,<2,b>,<3,a>} f7 = {<1,b>,<2,b>,<3,b>}
离散数学完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新)

(3)至于p为0即“我期终考了年级不是前 10”时,无论q为1或为0,即无论"我老妈 奖励1000元"或不奖励,都不能说老妈的 话是假的,故善意的认为pq为1均为1
1.1 命题及联结词
定义1.5双条件:当p与q值相同时,pq为1,不同 为0。 称p当且仅当q
“普通老师赚了100万当且仅当他 中了100万的彩票”, 普通老师赚了100万 普通老师买彩票中了100万大奖
故pq为0
1.1 命题及联结词
定义1.4条件式当p是1 ,q是0时,pq为0,即 10为0,其他情况为1。 p称为前件,q称为后件
(1)当p为1即“我期终考了年级前10”
q为0即“我老妈没有奖励1000元” 这时老妈的话为假,即pq为0 (2)当p为1即“我期终考了年级前10” q为1即“我老妈奖励1000元” 这时妈妈的话就对了,即pq为1
由于所有内容(整数,实数,字符,汉字,图片,声 音,视频,网页,……)进入电脑后,全是01组成的字 符串,从而都可以用布尔运算即逻辑运算实现,命题逻 辑成为计算机的基础。
命题逻辑将数学由连续变到离散,由高数进入离散。
Google采用逻辑运算进行搜索:数字之美 吴军 杨圣洪 000100010001110000 两者对应位置与运算。 离散数学 100100000000100001
陈述句(6)的正确性,到2018年12月时能确定的,若届 时建成了则它是对的、为真命题,否为假命题。
1.1 命题及联结词
对错确定的陈述语句称为命题。如:
(7) x与y之和为100,其中x为整数,y为整数 (8)1加1等于10 (7)的对错不确定。当x为50、y为50时是对的,当x为 51、y为52时是错的。 (8)的对错是不确定的,为二进制时正确,当为八进制、 十进制时是错的,因此这两个陈述句不是命题。 (9)青枫峡的红叶真美呀! (10)动作快点! (11)你是杨老师吗? 这三个语句不是陈述语句,因此不是命题。
1.1 命题及联结词
定义1.5双条件:当p与q值相同时,pq为1,不同 为0。 称p当且仅当q
“普通老师赚了100万当且仅当他 中了100万的彩票”, 普通老师赚了100万 普通老师买彩票中了100万大奖
故pq为0
1.1 命题及联结词
定义1.4条件式当p是1 ,q是0时,pq为0,即 10为0,其他情况为1。 p称为前件,q称为后件
(1)当p为1即“我期终考了年级前10”
q为0即“我老妈没有奖励1000元” 这时老妈的话为假,即pq为0 (2)当p为1即“我期终考了年级前10” q为1即“我老妈奖励1000元” 这时妈妈的话就对了,即pq为1
由于所有内容(整数,实数,字符,汉字,图片,声 音,视频,网页,……)进入电脑后,全是01组成的字 符串,从而都可以用布尔运算即逻辑运算实现,命题逻 辑成为计算机的基础。
命题逻辑将数学由连续变到离散,由高数进入离散。
Google采用逻辑运算进行搜索:数字之美 吴军 杨圣洪 000100010001110000 两者对应位置与运算。 离散数学 100100000000100001
陈述句(6)的正确性,到2018年12月时能确定的,若届 时建成了则它是对的、为真命题,否为假命题。
1.1 命题及联结词
对错确定的陈述语句称为命题。如:
(7) x与y之和为100,其中x为整数,y为整数 (8)1加1等于10 (7)的对错不确定。当x为50、y为50时是对的,当x为 51、y为52时是错的。 (8)的对错是不确定的,为二进制时正确,当为八进制、 十进制时是错的,因此这两个陈述句不是命题。 (9)青枫峡的红叶真美呀! (10)动作快点! (11)你是杨老师吗? 这三个语句不是陈述语句,因此不是命题。
离散数学配套课件PPT(第5版)第一部分 数理逻辑联结词全功能集

3
复合联结词
与非式: pq(pq) 或非式: pq(pq)
和与, ∧,∨有下述关系: p(p∧p)pp p∧q( p∧q)(pq)(pq)(pq) p∨q(p∧q)(p)(q)(pp)(qq)
4
复合联结词(续)
ppp p∧q(pp)(qq) p∨q(pq)(pq)
13
例ቤተ መጻሕፍቲ ባይዱ续)
解 编号
极小项
角码 标记
1 x1∧x2∧x3∧x4 2 x1∧x2∧x3∧x4 3 x1∧x2∧x3∧x4
1110 * 1011 * 0111 *
4 x1∧x2∧x3∧x4 1010 * 5 x1∧x2∧x3∧x4 0101 * 6 x1∧x2∧x3∧x4 0011 *
1.5 联结词全功能集
联结词全功能集 与非联结词,或非联结词
1
联结词的全功能集
定义 设S是一个联结词集合,如果任何n(n1) 元 真值函数都可以由仅含S中的联结词构成的公式表 示,则称S是联结词全功能集.
说明:若S是联结词全功能集,则任何命题公式都 可用S中的联结词表示.
设S1, S2是两个联结词集合,且S1 S2. 若S1是全
x y
x∧y x y
x∨y x
x
与门
或门
非门
8
组合电路的例子
(x∨y)∧x的组合电路
x y
x y
第一种画法
x 第二种画法
9
例
例 楼梯的灯由上下2个开关控制, 要求按动任何一个 开关都能打开或关闭灯. 试设计一个这样的线路. 解 x,y:开关的状态, F:灯的状态, 打开为1, 关闭为0. 不妨设当2个开关都为0时灯是打开的.
(5,7) x1∧x3∧x4 001 *
复合联结词
与非式: pq(pq) 或非式: pq(pq)
和与, ∧,∨有下述关系: p(p∧p)pp p∧q( p∧q)(pq)(pq)(pq) p∨q(p∧q)(p)(q)(pp)(qq)
4
复合联结词(续)
ppp p∧q(pp)(qq) p∨q(pq)(pq)
13
例ቤተ መጻሕፍቲ ባይዱ续)
解 编号
极小项
角码 标记
1 x1∧x2∧x3∧x4 2 x1∧x2∧x3∧x4 3 x1∧x2∧x3∧x4
1110 * 1011 * 0111 *
4 x1∧x2∧x3∧x4 1010 * 5 x1∧x2∧x3∧x4 0101 * 6 x1∧x2∧x3∧x4 0011 *
1.5 联结词全功能集
联结词全功能集 与非联结词,或非联结词
1
联结词的全功能集
定义 设S是一个联结词集合,如果任何n(n1) 元 真值函数都可以由仅含S中的联结词构成的公式表 示,则称S是联结词全功能集.
说明:若S是联结词全功能集,则任何命题公式都 可用S中的联结词表示.
设S1, S2是两个联结词集合,且S1 S2. 若S1是全
x y
x∧y x y
x∨y x
x
与门
或门
非门
8
组合电路的例子
(x∨y)∧x的组合电路
x y
x y
第一种画法
x 第二种画法
9
例
例 楼梯的灯由上下2个开关控制, 要求按动任何一个 开关都能打开或关闭灯. 试设计一个这样的线路. 解 x,y:开关的状态, F:灯的状态, 打开为1, 关闭为0. 不妨设当2个开关都为0时灯是打开的.
(5,7) x1∧x3∧x4 001 *
《离散数学概述》PPT课件

同 子代数 种
的 积代数 同
类 商代数 型
的 新代数系统
22
半群与群
广群 二元运算的封闭性
结合律
半群
交换律
交换半群
单位元 交换律
独异点
每个元素可逆 交换律
群
交换独异点 实例
Abel群
生成元
Klein群 循环群
有限个元素
有限群
编辑ppt
实例
n元置换群
23
图论
图论是离散数学的重要组成部分,是近代应用数学的重要分支。
由于在计算机内,机器字长总是有限的, 它代表离散的数或其
它离散对象,因此随着计算机科学和技术的迅猛发展,离散数
学就显得重要。
编辑ppt
5
离散数学的内容
数理逻辑: “证明”在计算科学的某些领域至关重要,构 造一个证明和写一个程序的思维过程在本质上是一样的。
组合分析:解决问题的一个重要方面就是计数或枚举对象。
编辑ppt
20
代数系统
近世代数,……,是关于运算的学说,是关于运算规则 的学说,但它不把自己局限在研究数的运算性质上,而 是企图研究一般性元素的运算性质。
——M.Klein
数学之所以重要,其中心原因在于它所提供的数学系统 的丰富多彩;此外的原因是,数学给出了一个系统,以 便于使用这些模型对物理现实和技术领域提出问题,回 答问题,并且也就探索了模型的行为。
1736年是图论历史元年,因为在这一年瑞士数学家欧拉(Euler) 发表了图论的首篇论文——《哥尼斯堡七桥问题无解》,所以人
们普遍认为欧拉是图论的创始人。
1936年,匈牙利数学家寇尼格(Konig)出版了图论的第一部专 著《有限图与无限图理论》,这是图论发展史上的重要的里程碑 ,它标志着图论将进入突飞猛进发展的新阶段。
离散数学的ppt课件

科学中的许多问题。
03
例如,利用图论中的最短路径算法和最小生成树算法
等,可以优化网络通信和数据存储等问题。
运筹学中的应用
01
运筹学是一门应用数学学科, 主要研究如何在有限资源下做 出最优决策,离散数学在运筹 学中有着广泛的应用。
02
利用离散数学中的线性规划、 整数规划和非线性规划等理论 ,可以解决运筹学中的许多问 题。
并集是将两个集合中的所有元素合 并在一起,形成一个新的集合。
详细描述
例如,{1, 2, 3}和{2, 3, 4}的并集是 {1, 2, 3, 4}。
总结词
补集是取一个集合中除了某个子集 以外的所有元素组成的集合。
详细描述
例如,对于集合{1, 2, 3},{1, 2}的 补集是{3}。
集合的基数
总结词
)的数学分支。
离散数学的学科特点
03
离散数学主要研究对象的结构、性质和关系,强调推
理和证明的方法。
离散数学的应用领域
计算机科学
01
离散数学是计重要的工具和方法。
通信工程
02
离散数学在通信工程中广泛应用于编码理论、密码学、信道容
量估计等领域。
集合的基数是指集合中元素的数量。
详细描述
例如,集合{1, 2, 3}的基数是3,即它包含三个元素。
03 图论
图的基本概念
顶点
图中的点称为顶点或节点。
边
连接两个顶点的线段称为边。
无向图
边没有方向,即连接两个顶点的线段可以是双向 的。
有向图
边有方向,即连接两个顶点的线段只能是从一个顶 点指向另一个顶点。
研究模态算子(如necessity、possibility)的语义和语法。
离散数学_高等教育出版社配套PPT课件_屈婉玲_耿素云_张立昂ch6

AB = AB = A
8ቤተ መጻሕፍቲ ባይዱ
广义运算
1. 集合的广义并与广义交 定义6.10 广义并 A = { x | z ( zA xz )} 广义交 A= { x | z ( zA xz )} 实例 {{1}, {1,2}, {1,2,3}}={1,2,3} {{1}, {1,2}, {1,2,3}}={1} {{a}}={a}, {{a}}={a} {a}=a, {a}=a
| A B C |
= 1000(200+166+125)+(33+25+41)8 = 600
14
6.3 集合恒等式
集合算律 1.只涉及一个运算的算律: 交换律、结合律、幂等律
交换 结合 幂等 AB=BA (AB)C =A(BC) AA=A AB=BA (AB)C= A(BC) AA=A AB=BA (AB)C =A(BC)
25
基本要求
熟练掌握集合的两种表示法 能够判别元素是否属于给定的集合 能够判别两个集合之间是否存在包含、相等、真包含等关 系 熟练掌握集合的基本运算(普通运算和广义运算) 掌握证明集合等式或者包含关系的基本方法
26
练习1
1.判断下列命题是否为真 (1) (2) (3) {} (4) {} (5) { a, b } { a, b, c, {a, b, c}} (6) { a, b } { a, b, c, {a, b}} (7) { a, b} { a, b, {{a, b}}} (8) { a, b} { a, b, {{a,b}}}
注意 和 是不同层次的问题
4
空集、全集和幂集
1.定义6.4 空集 :不含有任何元素的集合 实例: { x | xR x2+1=0 } 定理6.1 空集是任何集合的子集。 证 对于任意集合A, A x (xxA) T (恒真命题) 推论 是惟一的 2. 定义6.5 幂集:P(A)={ x | x A } 实例:P()={}, P({})={,{}} 计数:如果 |A|=n,则 |P(A)|=2n. 3. 定义6.6 全集 E:包含了所有集合的集合 全集具有相对性:与问题有关,不存在绝对的全集
数学离散数学PPT课件

(b) 对公式 A: F(x, y)∧M→F(u, x)中的 F, 欲代以 B: G(x1)∨H(x2, s)→H(t, x2), 则只需x , y , u不是B内的约 束变元, 而且s , t不是A内的约束变元。 代入结果为 (G(x)∨H(y, s)→H(t, y))∧M→(G(u)∨H(x, s)→H(t, x))
第22页/共41页
表 1.7 -1 含有量词的永真公式概要表
第23页/共41页
谓词演算规则
1、代入规则 2、替换规则 3、对偶原理
第24页/共41页
1. 代入规则
(i)自由个体变元的代入:在一公式中, 任一自由个体变元 可代以另一个体变元, 只需该个体变元出现的各处都同样代入, 且代入的变元不允许在原来公式中以约束变元出现。 例: 在公式xP(x, y)∨Q(w, y)中, 将y代以z, 则得xP(x, z)∨Q(w, z), 将y代以w, 则得xP(x, w)∨Q(w, w)。 所得公式称为原公式的代入实例。
1.后边的r个自由变元 不允许在原公式中以约束变元出现; 2. F(x1,x2, …, xn)中的变元也不允许在代入的公式中以约束变元 出现。
第26页/共41页
例: (a) 对公式(P→Q) (P∨Q)中的P代以xP(x), Q代以S(x), 得
(xP(x)→S(x)) (xP(x)∨S(x))
Q4
xP(x) xQ(x)
E14
第31页/共41页
(b) 证明
x(P(x) Q(x)) x(R(x) Q(x)) (R(x) P(x))
证: 根据CP规则, 上式等价于
x(P(x) Q(x)) x(R(x) Q(x)) (R(x) P(x))
而 x(P(x) Q(x)) x(R(x) Q(x))
第22页/共41页
表 1.7 -1 含有量词的永真公式概要表
第23页/共41页
谓词演算规则
1、代入规则 2、替换规则 3、对偶原理
第24页/共41页
1. 代入规则
(i)自由个体变元的代入:在一公式中, 任一自由个体变元 可代以另一个体变元, 只需该个体变元出现的各处都同样代入, 且代入的变元不允许在原来公式中以约束变元出现。 例: 在公式xP(x, y)∨Q(w, y)中, 将y代以z, 则得xP(x, z)∨Q(w, z), 将y代以w, 则得xP(x, w)∨Q(w, w)。 所得公式称为原公式的代入实例。
1.后边的r个自由变元 不允许在原公式中以约束变元出现; 2. F(x1,x2, …, xn)中的变元也不允许在代入的公式中以约束变元 出现。
第26页/共41页
例: (a) 对公式(P→Q) (P∨Q)中的P代以xP(x), Q代以S(x), 得
(xP(x)→S(x)) (xP(x)∨S(x))
Q4
xP(x) xQ(x)
E14
第31页/共41页
(b) 证明
x(P(x) Q(x)) x(R(x) Q(x)) (R(x) P(x))
证: 根据CP规则, 上式等价于
x(P(x) Q(x)) x(R(x) Q(x)) (R(x) P(x))
而 x(P(x) Q(x)) x(R(x) Q(x))
离散数学引言ppt课件

离散数学
总学时: 56 理论学时:50
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
绪论内容目录
• 离散数学概述 • 离散数学研究内容 • 教学内容 • 教材及参考书目
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
– 耿素云,离散数学,高等教育出版社 – 参考书目 – 王遇科,离散数学,北京理工大学出版
社 – 离散数学,王孝喜等译,电子工业出版
社
– Discrete Mathematical Structures, Bernard Kolman, Robert C.Busby, Sharon Ross, Prentice Hall Inc.
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
• 图论
___对于解决许多实际问题很有用处,对于 学习数据结构、编译原理课程也很有帮助。 要求掌握有关图、树的基本概念,以及如 何将图论用于实际问题的解决,并培养其 使用数学工具建立模型的思维方式。
数理逻辑 齐人固善盗乎?
___<<晏子春秋 内篇杂下第六>>
论辩中的复杂问语
___<<哲学演讲录>>(二)中曾叙述了一个 复杂问语:
梅内德谟:你已停止打你父亲,是吗?
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
总学时: 56 理论学时:50
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
绪论内容目录
• 离散数学概述 • 离散数学研究内容 • 教学内容 • 教材及参考书目
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
– 耿素云,离散数学,高等教育出版社 – 参考书目 – 王遇科,离散数学,北京理工大学出版
社 – 离散数学,王孝喜等译,电子工业出版
社
– Discrete Mathematical Structures, Bernard Kolman, Robert C.Busby, Sharon Ross, Prentice Hall Inc.
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
• 图论
___对于解决许多实际问题很有用处,对于 学习数据结构、编译原理课程也很有帮助。 要求掌握有关图、树的基本概念,以及如 何将图论用于实际问题的解决,并培养其 使用数学工具建立模型的思维方式。
数理逻辑 齐人固善盗乎?
___<<晏子春秋 内篇杂下第六>>
论辩中的复杂问语
___<<哲学演讲录>>(二)中曾叙述了一个 复杂问语:
梅内德谟:你已停止打你父亲,是吗?
严格执行突发事件上报制度、校外活 动报批 制度等 相关规 章制度 。做到 及时发 现、制 止、汇 报并处 理各类 违纪行 为或突 发事件 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pnm
24
1 5 7 8
2
3
4
6
7
求解递推方程
W ( n) 2W ( 2 k 1 ) 2 k 1 2[2W ( 2 k 2 ) 2 k 1 1] 2 k 1 22W (2k 2 ) 2k 2 2k 1 2 2 [2W ( 2 k 3 ) 2 k 2 1] 2 k 2 2 k 1 2 W (2
12
平均时间复杂度
T(n)为对数组的各种输入平均做的比较次数 将输入按照A[p]在排好序后的位置分别为1, 2, ቤተ መጻሕፍቲ ባይዱ, n进行分类. 假设每类输入出现的概率相等
A[p]处位置1,划分后子问题规模分别为0和n-1 … A[p]处位置n,划分后子问题规模分别为n-1和0
n 种输入的平均复杂度为
1 T ( n) [(T (0) T ( n 1)) (T (1) T ( n 2)) ... n 2 n 1 (T ( n 1) T (0))] O( n) T ( i ) O( n) n i 1
2 n 1 T ( n) T ( i ) O( n), n 2 n i 1 T (1) 0
求解方法:迭代法
5
二分归并排序算法
算法Mergesort(A,s,t) //*排序数组A[s..t] 1. m(t-s)/2 2. AMergesort(A,s,m) //*排序前半数组 3. BMergesort(A,s+1,t) //*排序后半数组 4. Merge(A,B) //*将排好序的A,B归并
8.3 递推方程的求解与应用
Hanoi 塔问题 递推方程的定义 二分归并排序算法的分析 快速排序算法的分析 递归树 分治算法分析的一般公式
1
Hanoi塔问题
Hanoi塔问题: 从A柱将这些圆盘移到C柱上去. 如果把一个圆盘从
一个柱子移到另一个柱子称作 1 次移动,在移动和放置
13
递推方程求解
2 n 1 T ( n) T ( i ) O( n), n 2 n i 1 T (1) 0
差消法化简
nT ( n) 2 T ( i ) cn2
i 1 n 2 i 1 n 1
c为 某 个 常 数
( n 1)T ( n 1) 2 T ( i ) c( n 1)2
4
递推方程的定义
定义10.5 设序列a0, a1, …, an, …, 简记为{an}, 一 个把an与某些个ai(i<n)联系起来的等式叫做关 于序列{an}的递推方程.
实例: Fibonacci数列: fn=fn-1+fn-2, 初值 f0=1, f1=1 阶乘数列{an},an=n!:an=nan-1, a1=1
19
迭代
T ( n) a 2T ( n / b 2 ) ad( n / b) d ( n) ... a kT ( n / b k ) a k 1d ( n / b k 1 ) a k 2 ( n / b k 2 ) ... ad( n / b) d ( n) a k a i d (n / bi )
22
例题:关系计数
设A为n元集,A上可定义个不同的二元关系,其中有 (1) 多少个自反的二元关系? (2) 多少个对称的二元关系? (3) 多少个反对称的二元关系?
(1) 二元关系个数: 2 (2) 自反关系个数: 2
2n
2
n2
n2 n
n( n 1) 2
(3) 对称关系个数: 2 (4) 反对称关系个数:
2n 3
n ( n 1 ) 2
例题:函数计数
设A、B分别为m元集和n元集,m和n为正整数,则从A到B有多 少个函数? (1) 当m与n满足什么条件时存在单射函数?有多少个? (2) 当m与n满足什么条件时存在双射函数?有多少个? 有nm个从A到B的函数,其中 Pnm 个 (1) 当mn时存在单射函数. 单射函数有 (2) 当m=n时存在双射函数. 双射函数有n!个.
i 0 k 1
a k a logb n nlogb a
Case1 d(n)=c
k ak 1 a c O(a k ) O( nlogb a ) a 1 T ( n) a 1 a k kc O(logn) a 1
20
Case2 d(n)=cn
时允许使用B柱,但不允许大圆盘放到小圆盘的上面. 问 把所有的圆盘的从A移到C总计需要多少次移动?
2
算法设计与分析
算法 Hanoi (A,C,n) //*把n个盘子从A移到C 1. Hanoi (A,B,n-1) 2. move (A,C) //*把1个盘子从A移到C 3. Hanoi (B,C,n-1)
输入:数组A[p..r] 输出:排好序的数组A 1. if p < r 2. then qPartition(A, p, r) //*以A[p]为准划分A 3. A[p]A[q] //*A[p]与A[q]交换 4. Quicksort(A,p,q-1) //*对子数组递归排序 5. Quicksort(A,q+1,r)
W(n) n1 n/2-1 W(n/2) W(n/2) W(n/4) …. n1 n/2-1 W(n/4)
17
n-1
n/2-1 n/4-1 n/4-1
1 1 1 1 1
n-1
n/2-1 n/4-1 n/4-1
1 1 1 1 1
k 1
n-2 n-4
……..
…………
n-2k1
)
( n 1) ( n 2) ... ( n 2 nk (1 2 ... 2 k 1 )
3 k 3
) 2 2 2 2 2 1
k 2 k k k k 1
... 2 W (1) k 2 ( 2
k
2
k 2
... 2 1)
k 2k 2k 1 n logn n 1
8
归纳法验证解
n=1代入上述公式得
W(1)=1 log11+1=0,
移动n个盘子的总次数为T(n) ,得到递推方程 T(n) = 2T(n1) +1. T(1)=1. 可以求得 T(n)=2n 1 1秒钟移动1次,64个盘子大约需要5000亿年
3
T ( n) 2T ( n 1) 1 2[2T ( n 2) 1] 1 (T ( n 1)被 含T ( n 2)的 项 替 换 ) 2 2 T ( n 2) 2 1 2 2 [2T ( n 3) 1] 2 1 (T ( n 2)被 含T ( n 3)的 项 替 换 ) 2 3 T ( n 3) 2 2 2 1 ... 2 n1 T (1) 2 n 2 2 n 3 ... 2 1 2 n1 2 n 2 2 n 3 ... 2 1 (代 入 初 值 ) 2n 1 (等比级数求和)
21
应用实例
二分归并
W ( n) 2W ( n/2 ) n 1 , n 2k W (1) 0
a=2,b=2,d(n)=O(n) T(n)=O(nlogn)
二分查找
W ( n) W ( n/2 ) 1 , n 2k W (1) 0
a=1,b=2,d(n)=O(1) T(n)=O(logn)
15
用积分近似
1 1 1 ... n1 n 3
n1
2
1 dx ln x n1 2 x
ln(n 1) ln 2 O(logn)
.
T (n) O(n logn)
16
递归树
W ( n) 2W ( n/2 ) n 1 , n 2k W (1) 0
nT (n) (n 1)T (n 1) 2T (n 1) O(n)
nT (n) (n 1)T (n 1) O(n)
14
迭代
T ( n) T ( n 1) c c为 某 个 常 数 n1 n n1 T ( n 2) c c n1 n n1 1 1 1 T (1) c[ ... ] n1 n 3 2 1 1 1 c ... 3 n 1 n
10
划分过程
Partition(A,p,r) 1. x A[p] 2. i p 3. j r+1 4. while true do 5. repeat j j 1 6. until A[ j ]<x //*右边第1个比A[p]小的A[j] 7. repeat i i +1 8. until A[ i ]>x //*左边第1个比A[p]大的A[i] 9. if i < j 10. then A[ i ] A[ j ] //*交换A[j]与A[i] 11. else return j
k
nk ( 2 1) n logn n 1
18
分治算法的常用递推公式
T ( n) aT( n / b) d ( n) T (1) 1 n bk
其中a为子问题个数,n/b为子问题规模,d(n)为分解成 子问题或组合解的代价 方程的解为:
O( n logb a ) d ( n) c : T ( n) O(logn) O ( n) d ( n) cn : T ( n) O( n logn) O( nlogb a ) a 1 a 1 ab ab ab
假设n=2k,比较次数至多为W(n) W(n)=2W(n/2)+n1 归并两个n/2大小数组的比较次数为n1
24
1 5 7 8
2
3
4
6
7
求解递推方程
W ( n) 2W ( 2 k 1 ) 2 k 1 2[2W ( 2 k 2 ) 2 k 1 1] 2 k 1 22W (2k 2 ) 2k 2 2k 1 2 2 [2W ( 2 k 3 ) 2 k 2 1] 2 k 2 2 k 1 2 W (2
12
平均时间复杂度
T(n)为对数组的各种输入平均做的比较次数 将输入按照A[p]在排好序后的位置分别为1, 2, ቤተ መጻሕፍቲ ባይዱ, n进行分类. 假设每类输入出现的概率相等
A[p]处位置1,划分后子问题规模分别为0和n-1 … A[p]处位置n,划分后子问题规模分别为n-1和0
n 种输入的平均复杂度为
1 T ( n) [(T (0) T ( n 1)) (T (1) T ( n 2)) ... n 2 n 1 (T ( n 1) T (0))] O( n) T ( i ) O( n) n i 1
2 n 1 T ( n) T ( i ) O( n), n 2 n i 1 T (1) 0
求解方法:迭代法
5
二分归并排序算法
算法Mergesort(A,s,t) //*排序数组A[s..t] 1. m(t-s)/2 2. AMergesort(A,s,m) //*排序前半数组 3. BMergesort(A,s+1,t) //*排序后半数组 4. Merge(A,B) //*将排好序的A,B归并
8.3 递推方程的求解与应用
Hanoi 塔问题 递推方程的定义 二分归并排序算法的分析 快速排序算法的分析 递归树 分治算法分析的一般公式
1
Hanoi塔问题
Hanoi塔问题: 从A柱将这些圆盘移到C柱上去. 如果把一个圆盘从
一个柱子移到另一个柱子称作 1 次移动,在移动和放置
13
递推方程求解
2 n 1 T ( n) T ( i ) O( n), n 2 n i 1 T (1) 0
差消法化简
nT ( n) 2 T ( i ) cn2
i 1 n 2 i 1 n 1
c为 某 个 常 数
( n 1)T ( n 1) 2 T ( i ) c( n 1)2
4
递推方程的定义
定义10.5 设序列a0, a1, …, an, …, 简记为{an}, 一 个把an与某些个ai(i<n)联系起来的等式叫做关 于序列{an}的递推方程.
实例: Fibonacci数列: fn=fn-1+fn-2, 初值 f0=1, f1=1 阶乘数列{an},an=n!:an=nan-1, a1=1
19
迭代
T ( n) a 2T ( n / b 2 ) ad( n / b) d ( n) ... a kT ( n / b k ) a k 1d ( n / b k 1 ) a k 2 ( n / b k 2 ) ... ad( n / b) d ( n) a k a i d (n / bi )
22
例题:关系计数
设A为n元集,A上可定义个不同的二元关系,其中有 (1) 多少个自反的二元关系? (2) 多少个对称的二元关系? (3) 多少个反对称的二元关系?
(1) 二元关系个数: 2 (2) 自反关系个数: 2
2n
2
n2
n2 n
n( n 1) 2
(3) 对称关系个数: 2 (4) 反对称关系个数:
2n 3
n ( n 1 ) 2
例题:函数计数
设A、B分别为m元集和n元集,m和n为正整数,则从A到B有多 少个函数? (1) 当m与n满足什么条件时存在单射函数?有多少个? (2) 当m与n满足什么条件时存在双射函数?有多少个? 有nm个从A到B的函数,其中 Pnm 个 (1) 当mn时存在单射函数. 单射函数有 (2) 当m=n时存在双射函数. 双射函数有n!个.
i 0 k 1
a k a logb n nlogb a
Case1 d(n)=c
k ak 1 a c O(a k ) O( nlogb a ) a 1 T ( n) a 1 a k kc O(logn) a 1
20
Case2 d(n)=cn
时允许使用B柱,但不允许大圆盘放到小圆盘的上面. 问 把所有的圆盘的从A移到C总计需要多少次移动?
2
算法设计与分析
算法 Hanoi (A,C,n) //*把n个盘子从A移到C 1. Hanoi (A,B,n-1) 2. move (A,C) //*把1个盘子从A移到C 3. Hanoi (B,C,n-1)
输入:数组A[p..r] 输出:排好序的数组A 1. if p < r 2. then qPartition(A, p, r) //*以A[p]为准划分A 3. A[p]A[q] //*A[p]与A[q]交换 4. Quicksort(A,p,q-1) //*对子数组递归排序 5. Quicksort(A,q+1,r)
W(n) n1 n/2-1 W(n/2) W(n/2) W(n/4) …. n1 n/2-1 W(n/4)
17
n-1
n/2-1 n/4-1 n/4-1
1 1 1 1 1
n-1
n/2-1 n/4-1 n/4-1
1 1 1 1 1
k 1
n-2 n-4
……..
…………
n-2k1
)
( n 1) ( n 2) ... ( n 2 nk (1 2 ... 2 k 1 )
3 k 3
) 2 2 2 2 2 1
k 2 k k k k 1
... 2 W (1) k 2 ( 2
k
2
k 2
... 2 1)
k 2k 2k 1 n logn n 1
8
归纳法验证解
n=1代入上述公式得
W(1)=1 log11+1=0,
移动n个盘子的总次数为T(n) ,得到递推方程 T(n) = 2T(n1) +1. T(1)=1. 可以求得 T(n)=2n 1 1秒钟移动1次,64个盘子大约需要5000亿年
3
T ( n) 2T ( n 1) 1 2[2T ( n 2) 1] 1 (T ( n 1)被 含T ( n 2)的 项 替 换 ) 2 2 T ( n 2) 2 1 2 2 [2T ( n 3) 1] 2 1 (T ( n 2)被 含T ( n 3)的 项 替 换 ) 2 3 T ( n 3) 2 2 2 1 ... 2 n1 T (1) 2 n 2 2 n 3 ... 2 1 2 n1 2 n 2 2 n 3 ... 2 1 (代 入 初 值 ) 2n 1 (等比级数求和)
21
应用实例
二分归并
W ( n) 2W ( n/2 ) n 1 , n 2k W (1) 0
a=2,b=2,d(n)=O(n) T(n)=O(nlogn)
二分查找
W ( n) W ( n/2 ) 1 , n 2k W (1) 0
a=1,b=2,d(n)=O(1) T(n)=O(logn)
15
用积分近似
1 1 1 ... n1 n 3
n1
2
1 dx ln x n1 2 x
ln(n 1) ln 2 O(logn)
.
T (n) O(n logn)
16
递归树
W ( n) 2W ( n/2 ) n 1 , n 2k W (1) 0
nT (n) (n 1)T (n 1) 2T (n 1) O(n)
nT (n) (n 1)T (n 1) O(n)
14
迭代
T ( n) T ( n 1) c c为 某 个 常 数 n1 n n1 T ( n 2) c c n1 n n1 1 1 1 T (1) c[ ... ] n1 n 3 2 1 1 1 c ... 3 n 1 n
10
划分过程
Partition(A,p,r) 1. x A[p] 2. i p 3. j r+1 4. while true do 5. repeat j j 1 6. until A[ j ]<x //*右边第1个比A[p]小的A[j] 7. repeat i i +1 8. until A[ i ]>x //*左边第1个比A[p]大的A[i] 9. if i < j 10. then A[ i ] A[ j ] //*交换A[j]与A[i] 11. else return j
k
nk ( 2 1) n logn n 1
18
分治算法的常用递推公式
T ( n) aT( n / b) d ( n) T (1) 1 n bk
其中a为子问题个数,n/b为子问题规模,d(n)为分解成 子问题或组合解的代价 方程的解为:
O( n logb a ) d ( n) c : T ( n) O(logn) O ( n) d ( n) cn : T ( n) O( n logn) O( nlogb a ) a 1 a 1 ab ab ab
假设n=2k,比较次数至多为W(n) W(n)=2W(n/2)+n1 归并两个n/2大小数组的比较次数为n1