离散数学课件-第2章-4.ppt
《离散数学课件-第2章-4.ppt》由会员分享,可在线阅读,更多相关《离散数学课件-第2章-4.ppt(58页珍藏版)》请在三一办公上搜索。
1、2023/11/16,1,1,离散数学Discrete Mathematics,汪荣贵 教授合肥工业大学软件学院专用课件2010.03,2023/11/16,2,第二章 算法基础,2023/11/16,3,2.1 Algorithms算法2.2 Complexity of Algorithms算法的复杂性2.3 The Integers and Division整数和除法2.4 Integers and Algorithm整数和算法2.5 Applications of Number Theory数论的应用2.6 Matrices矩阵2.7 Recursion 递归,学习内容,2023/11/
2、16,4,The Euclidean Of Algorithms 欧几里德算法Representations Of Integers 整数表示Algorithms For Integers Operations整数运算算法,整数和除法,2023/11/16,5,上一节中的用整数的素因子分解求两个整数最大公约数的算法效率不高 古希腊数学家欧几里德,在他的书Elements中记载了效率更高的方法,欧几里德算法,2023/11/16,6,欧几里德算法求解gcd(91,287)用两数中的小者91去除两数中的大者287287=913+1491和287的任何公约数必定是287-913=14的因数91和14
3、的任何公约数也必定是287=913+14的因数287和91的最大公约数和91与14的最大公约数相同 求gcd(91,287)的问题已被化简为 gcd(91,14)的问题,欧几里德算法,2023/11/16,7,欧几里德算法,Let a=bq+r,where a,b,q,r are integers.Then gcd(a,b)=gcd(b,r).,引理1 令a=bq+r,其中a,b,q,r为整数,则gcd(a,b)=gcd(b,r).,2023/11/16,8,例 用欧几里德算法求414和622的最大公约数解 662=4141+248 414=2481+166 248=1661+82 66=82
4、2+2因此,gcd(414,662)=2,欧几里德算法,2023/11/16,9,欧几里德算法伪码 Procedure gcd(a,b:正整数)x:=a y:=b While y0 Begin r:=x mod y x:=y y:=r end gcd(a,b)是x时间复杂性O(logb),2023/11/16,10,x和y的初值分别是a和b。在过程的每一步都是x用y代替,而y用x mod y代替,x mod y即是x被y除的余数。只要y0,这个过程就重复下去。当y=0时算法终止,此时x的值,也就是这一过程中最后一个非零余数,即为a和b的最大公约数。,欧几里德算法,2023/11/16,11,I
5、t follows from Lemma 1 that gcd(a,b)=gcd(r0,r1)=gcd(r1,r2)=gcd(rn-2,rn-1)=gcd(rn-1,rn)=gcd(rn,0)=rn,Suppose that a and b are positive integers with ab.Let r0=a and r1=b.r0=r1q1+r2 0r2r1,r1=r2q2+r3 0r3r2,rn-2=rn-1qn-1+rn 0rn-1rn,rn-1=rnqn.,2023/11/16,12,ALGORITHM 1 The Euclidean Algorithm.Procedure g
6、cd(a,b:positive integers)x:=ay:=bwhile y0begin r:=x mod y x:=y y:=rend gcd(a,b)is x,欧几里德算法,2023/11/16,13,GCD(22,8),GCD(8,6),GCD(6,2),GCD(2,0),2,递推,递推,递推,递推,回归,回归,回归,回归,结果为GCD(22,8)=2,例:GCD(22,8)=GCD(8,6)=GCD(6,2)=GCD(2,0)=2;,2023/11/16,14,The Euclidean Of Algorithms 欧几里德算法Representations Of Integers
7、 整数表示Algorithms For Integers Operations整数运算算法,整数和除法,2023/11/16,15,基本概念二进制转为十进制十六进制八进制十进制转二进制一般进制,整数表示,2023/11/16,16,生活中其实很多地方的计数方法都多少有点不同进制的影子。我们最常用的10进制,起源于人有10个指头。至于二进制没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度,基本概念,2023/11/16,17,定理1 令b为大于1的正整数。那么如果n是个正整数,就可
8、以唯一地表示为下面的形式:n=akbk+ak-1bk-1+a1b+a0 其中k是个非负整数,a0,a1ak是小于b的非负整数,ak0Theorem 1 Let b be a positive integer greater than 1.Then if n is a positive integer,it can be expressed uniquely in the form n=akbk+ak-1bk-1+a1b+a0,where k is a nonnegative integer,a0,a1,ak are nonnegative integers less than b,and ak
9、0.,基本概念,2023/11/16,18,2进制,用两个阿拉伯数字:0、1;8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;10进制,用十个阿拉伯数字:0到9;16进制,用十六个阿拉伯数字等等,基本概念,2023/11/16,19,数据在计算机中的表示最终以二进制的形式存在二进制数表示数码很长:比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,非常麻烦 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。为什么偏偏是16或8进制,而不其它的
10、,诸如9或20进制呢?,2023/11/16,20,基本概念二进制转为十进制十六进制八进制十进制转二进制一般进制,整数表示,2023/11/16,21,2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。,二进制转十进制,2023/11/16,22,二进制数第0位的权值是2的0次方,第1位的权值是2的1次方所以,设有一个二进制数:0110 0100,转换为10进制为:下面是竖式:0110 0100 换算成 十进制第0位 0*20=0第1位 0*21=0第2位 1*22=4第3位 0*23=0第
11、4位 0*24=0第5位 1*25=32第6位 1*26=64第7位 0*27=0-100,2023/11/16,23,用横式计算为:0*20+0*21+1*22+1*23+0*24+1*25+1*26+0*27=1000乘以多少都是0,所以我们也可以直接跳过值为0的位:1*22+1*23+1*25+1*26=100,二进制转十进制,2023/11/16,24,例 以(101011111)2为二进制张开的整数,其十进制展开是什么?解(101011111)2=28+26+24+23+22+2+1=351,二进制转十进制,2023/11/16,25,基本概念二进制转为十进制十六进制八进制十进制转二
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 课件
链接地址:https://www.31ppt.com/p-6595666.html