版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022/7/25计算机应用技术研究所1离散数学Discrete Mathematics 汪荣贵 教授合肥工业大学计算机与信息学院2022/7/25计算机应用技术研究所2第2章 整数与算法设计基础(上)2022/7/25 同余算术及其运用2 算法设计的基本知识3 整数的基本知识1 算法设计策略与应用4 本章学习内容2022/7/25计算机应用技术研究所4整数的基本知识 整数的基本知识 整数与整除算法 整数的因数分解 素数的性质与查找2022/7/25计算机应用技术研究所6整数在第一章,我们得到自然数和自然数集的定义。在自然数集中加入每个非零的相反数就得到整个整数集合Z。对于整数集合Z ,有:Z
2、=,-4,-3,-2,-1,0,1,2,3,42022/7/25计算机应用技术研究所7整除的概念与性质2022/7/25计算机应用技术研究所8素数(质数)与合数如何判断一个数是不是素数呢?目前使用较有效的方法是试除法。用试除法判断一个自然数a是不是素数时,用各个素数从小到大依次去除a,如果到某一个素数正好整除,这个a就可以断定不是素数;如果不能整除,当不完全商又小于这个素数时,就不必再继续试除,可以断定a必然是素数。2022/7/25计算机应用技术研究所9整数相关的定理怎么证明以上的定理呢?2022/7/25计算机应用技术研究所10例 题2022/7/25计算机应用技术研究所11例题2022/
3、7/25计算机应用技术研究所12整数相关的定理2022/7/25计算机应用技术研究所13总结从上述定理的证明过程可以看出,整除是带余除法中余数等于 0 的情形。 因此,带余除法可以看成是对整除的一种推广。 事实上,还可通过带余除法的概念来定义和理解整除的概念,即 a 能够整除 b 的当且仅当 b 除以 a 的余数为 0。 整数的因数分解 整数与整数除法 整数的因数分解 素数的性质和查找2022/7/25计算机应用技术研究所15 因数分解的概念把一个整数分解成两个或更多的除1外的整数相乘的过程。这些整数称为这个数的因数。2022/7/25计算机应用技术研究所16 公因数与公倍数这两个问题该怎么求
4、解呢?这就用到了下面介绍的公因数与公倍数的概念2022/7/25计算机应用技术研究所17 最大公因数与最小公倍数的概念最小公倍数最大公因数自然数1可以整除任意整数,因此对于任意两个整数,它们的公因数总是存在的。 公因数表达的是两个整数的共同部分,通常需要考察两个整数之间的共同部分最大值能达到多少,故有所谓最大公因数的概念。同样,对于任意两个整数,这两个整数的乘积就是它们的公倍数,因此,公倍数总是存在的,需要着重考察的通常式公倍数的最小值,因而有最小公倍数的概念。 2022/7/25计算机应用技术研究所18 最大公因数与最小公倍数的概念前面已经学习了两个整数的最大公因数与最小公倍数的概念,现在推
5、广到K个整数的情况2022/7/25计算机应用技术研究所19 最大公因数与最小公倍数的概念2022/7/25计算机应用技术研究所20最大公因数与最小公倍数的关系通过最大公因数与最小公倍数的定义,我们可以看到这二者是通过两个自然数的某种运算得到的,那么这二者之间是否存在某种关系呢?2022/7/25计算机应用技术研究所21 最大公因数的性质带余除法最大公因数在带余除法中有一个比较好的性质,在这里加以介绍2022/7/25计算机应用技术研究所22 例题2022/7/25计算机应用技术研究所23 辗转相除法辗转相除法是一种古老的算法,在国际上也称为欧几里得算法,起初源于欧几里得几何原本第卷命题,在中
6、国也称为更相减损术,最初来源于九章算术方田第六题。2022/7/25计算机应用技术研究所24辗转相除法辗转相除法步骤:第一步:输入两个正整数m,n(mn);第二步:计算m除以n所得的余数r;第三步: m=nn=r;第四步:若r=0,则m,n的最大公约数等于m;否则转到第二步;第五步:输出最大公约数m。用程序框图表示出来:2022/7/25计算机应用技术研究所25辗转相除法2022/7/25计算机应用技术研究所26辗转相除法2022/7/25计算机应用技术研究所27 例题做辗转相除法从后向前迭代2022/7/25计算机应用技术研究所28辗转相除法上述定理表明,整数 a 和 b 的最大公因数可以表
7、示为它们的一个线性组合。这就给出了最大公因式一种具体表达形式,这种表达形式对于考察最大公因数的性质具有非常重要的作用。例如,使用上述线性组合表达式,可得到最大公因数下述性质: 现在我们举个例子对上述定理进行深入地了解。例如,gcd(56,24)=8,因此有m=-1,n=2使得:8=56*(-1)+24*2通过这个例子我们可以看到,8不仅是56与24两个整数的最大公因数,也是这两个整数的所有因数的倍数,这才是这个定理所要告诉我们的地方。 互素的概念从整除的角度看,两个整数的公因数表达的是这两个整数共性成分。如果两个整数的最大公因数为1,则表明这两个整数除1之外没有任何额外的共性成分。因此,从结构
8、上看,这两个整数之间具有很强的独立性。这种很强的独立性我们称之为互素。下面就介绍互素的概念。2022/7/25计算机应用技术研究所30 例题【例题2.9】小于12的哪些正整数与12互素?【例题2.10】判断整数10, 17和21是否两两互素,整数10, 19和24是否两两互素。2022/7/25计算机应用技术研究所31前面介绍了互素的概念,从互素的概念出发,能够得到一些比较好的性质,下面一一介绍 互素的性质2022/7/25计算机应用技术研究所32 互素性质的证明2022/7/25计算机应用技术研究所33 互素性质的证明2022/7/25计算机应用技术研究所34 例题2022/7/25计算机应
9、用技术研究所35 算术基本定理算术基本定理是初等数论中一条非常基本和重要的定理,它把对自然数的研究转化为对其最基本的元素一素数的研究。它所体现的唯一因子分解的思想,在现代交换环理论中起着非常重要的作用。唯一因子分解的思想从本质上讲是指以下两种性质:“存在性和唯一性”。所谓“存在性”就是指一个元素可以分解为有限多个不可约因子的乘积;“唯一性”是指这种分解表示在某种意义上来说是唯一的。唯一因子分解的思想最初作为一个自然数的性质而出现,这个性质就是通常所说的算术基本定理。2022/7/25计算机应用技术研究所36引理2022/7/25计算机应用技术研究所37算术基本定理整数素数分解的存在性与唯一性2
10、022/7/25计算机应用技术研究所38素幂分解式整数的素幂分解式给出了整数一种基于素数的结构表达,在数论研究中具有非常重要的作用。2022/7/25计算机应用技术研究所39例题【例1】写出51480的素幂分解式。【例2】写出10个连续的正整数,使他们都是合数。2022/7/25计算机应用技术研究所40素幂分解式上面这个定理表明,可以使用其素幂分解式计算两个整数的最大公约数和最小公倍数,还可以证明最大公约数和最小公倍数之间的关系。2022/7/25计算机应用技术研究所41例题【例2】求132与240的最大公因数与最小公倍数。 整数的基本知识 整数与整数除法 整数的因数分解 素数的性质与查找20
11、22/7/25计算机应用技术研究所43素数的性质如果一个问题的求解过程复杂度远高于其设立过程复杂度,那么它就有潜力被设计为一个密码学算法。至于像公钥密码这种天才的构想,就需要这个问题难的同时还具有一些特殊特性。目前为止,公钥密码在本质上也就RSA和椭圆曲线两套内核而已,在二者中素数都有很重要的地位。那素数又有哪些比较好的性质值得我们去学习呢?要好好学习这些性质!这也是后面我们学习加密算法的基础。2022/7/25计算机应用技术研究所44 素数的性质【定理2.15】假设p是任意一个给定的素数,则它与其它任意整数a之间的关系是:要么p与a互素,要么p能够整除a。素数的一个非常独特性质是它与其它整数
12、之间具有如上非常简单而直接的关系,这种简单直接的关系是使用素数考察整数性质的基础。2022/7/25计算机应用技术研究所45 素数的性质2022/7/25计算机应用技术研究所46 素数的查找下面讨论素数的计数问题。首先考虑在整个正整数集合中,到底有多少个素数?下面的定理给出了答案:【定理2.17】正整数集合中的素数有无穷多个。2022/7/25计算机应用技术研究所47现在我们考虑给定一个正整数集合,如何找到这个集合中的所有素数呢? 素数的查找2022/7/25计算机应用技术研究所48 【例1】判断137和157是否是素数。 例题2022/7/25计算机应用技术研究所49 爱氏晒法下面再介绍另外
13、一种查找指定正整数集合素数的方法,它来源于定理2.18,但较之更为方便简洁,读者阅读之后便会有这样的感觉。爱氏筛法:2022/7/25计算机应用技术研究所50 例 题2022/7/25计算机应用技术研究所51 例题2022/7/25计算机应用技术研究所52 总结与拓展2022/7/25计算机应用技术研究所53本节结束!2022/7/25整数的基本知识1算法设计的基本知识3同余算术及其运用2算法设计策略与应用4 本章学习内容2022/7/25计算机应用技术研究所55同余算术及其运用 同余算术及其运用 同余关系及其运算 同余方程与方程组 整数加密算法2022/7/25计算机应用技术研究所57 同余
14、算术的产生背景 1801年,24 岁的高斯(1777-1855)出版了专著算术研究,在其中他提出了模演算法,以统一的观点处理了数论中的许多问题,从而开创了数论研究的新时代。 同余算术是整理理论一个重要发展并构成初等数论的理论核心,它从在一种比整除约束更为宽松的条件下考察整数的运算及性质并得到很多非常精彩的数论成果,这些成果在整数加密算法设计等多个领域得到广泛应用。2022/7/25计算机应用技术研究所58 同余关系及其运算对于任一给定的正整数m,通过考察所有整数除以m所得余数的差异,把所有具有相同余数的整数归为一类,则可将所有整数分为m个基本类型。基于上述思想,我们给出同余关系的定义。2022
15、/7/25计算机应用技术研究所59 同余关系的判定定理 有了同余关系的概念后,对于给定的两个整数,我们如何准确判定这两个整数是否具有同余关系呢?这就用到了我们下面要讲的同余关系的判定定理2022/7/25计算机应用技术研究所60 同余关系的判定定理同余关系的判定定理也有第二种表示方式:在现实生活中,时钟的钟点读数模12同余或者模24同余,分和秒读数模60同余,星期几的读法则是模7同余。2022/7/25计算机应用技术研究所61 同余关系的性质同余关系的保加性和保乘性:2022/7/25计算机应用技术研究所62 同余关系的性质同余关系的运算律:2022/7/25计算机应用技术研究所63 同余关系
16、的性质 同余关系的性质2022/7/25计算机应用技术研究所65 例题2022/7/25计算机应用技术研究所66 例题2022/7/25计算机应用技术研究所67 同余类前面已经介绍了同于关系的相关知识,利用同余关系可以实现对整数集合的划分,得到的结果就是划分为m个互不相交的子集合。2022/7/25计算机应用技术研究所68 同余类的性质2022/7/25计算机应用技术研究所69 同余类的性质上述定理表明,每个整数必定属于且仅属于其中一个剩余类,属于同一个剩余类的任意两个整数都是模m同余的,属于不同剩余类的任意两个整数不可能是模m同余的。2022/7/25计算机应用技术研究所70 同余类的加法与
17、乘法2022/7/25计算机应用技术研究所71 例题2022/7/25计算机应用技术研究所72 例题2022/7/25计算机应用技术研究所73 例题2022/7/25计算机应用技术研究所74 完全剩余系2022/7/25计算机应用技术研究所75 模m简化同余类2022/7/25计算机应用技术研究所76 欧拉函数2022/7/25计算机应用技术研究所77 欧拉函数2022/7/25计算机应用技术研究所78 例题 例题 同余算术及其应用 同余关系及其运算 同余方程与方程组 整数加密算法2022/7/25计算机应用技术研究所81 同余方程 孙子算经中的题目:有物不知其数,三个一数余二,五个一数余三,
18、七个一数又余二,问该物总数几何?孙子算经中的解法:三三数之,取数七十,与余数二相乘;五五数之,取数二十一,与余数三相乘;七七数之,取数十五,与余数二相乘。 这其实就是利用方程的思想求解带余除法问题,我们现在给出解决这类问题的数学方法。2022/7/25计算机应用技术研究所82 同余方程解的存在性如何求解一个同余方程,即该方程是否存在解?2022/7/25计算机应用技术研究所83 证明2022/7/25计算机应用技术研究所84 例题2022/7/25计算机应用技术研究所85化1法 在解一元一次方程的时候,经常将等式两边同时乘以未知数一次项系数的倒数,将未知数一次项的系数化为1,由此实现对方程组的
19、求解。现通过类似方法对同余方程求解。化1法2022/7/25计算机应用技术研究所862022/7/25计算机应用技术研究所87 证明2022/7/25计算机应用技术研究所88 例题2022/7/25计算机应用技术研究所89 例题2022/7/25计算机应用技术研究所903.3 集合定义的自然数和归纳法证明同余方程组2022/7/25计算机应用技术研究所91 中国余数定理中国余数定理,也称中国剩余定理,孙子剩余定理。 从孙子算经到秦九韶数书九章对一次同余式问题的研究成果,在19世纪中期开始受到西方数学界的重视。1852年,英国传教士伟烈亚力向欧洲介绍了 孙子算经的“物不知数”题和秦九韶的“大衍求
20、一术”;1876年,德国人马蒂生指出,中国的这一解法与西方19世纪高斯算术探究中关于一次同余式 组的解法完全一致。从此,中国古代数学的这一创造逐渐受到世界学者的瞩目,并在西方数学史著作中正式被称为“中国剩余定理”。2022/7/25计算机应用技术研究所92 中国余数定理2022/7/25计算机应用技术研究所93 证明当以上定义的同余方程组中所有模两两互素时,方程组一定有唯一的一组解。如何用算法步骤表示中国剩余定理?2022/7/25计算机应用技术研究所94 中国剩余定理第一步: 求各除数的最小公倍数;第二步: 求各除数的基础数;第三步: 求各基础数和;第四步: 求基准数(最小的,只有一个);第
21、五步: 求适合条件的数X。2022/7/25计算机应用技术研究所95 例题同余算术及其运用 同余关系及其运算 同余方程与方程组 整数加密算法2022/7/25计算机应用技术研究所973.3 集合定义的自然数和归纳法证明 仿射加密算法为防止机密信息被泄露或破坏,需采用数据加密技术对其进行保护。数据加密的基本思想是对原始数据加以伪装,使非法接入者无法理解信息的真正含义,基本过程就是对原来为明文信息或数据按某种算法进行处理,使其成为不可读的一段代码,称为密文,使其只能在输入相应密钥之后才能显示出本来内容。2022/7/25计算机应用技术研究所98仿射加密算法2022/7/25计算机应用技术研究所99
22、 仿射加密算法仿射加密算法2022/7/25计算机应用技术研究所100 例题【例】对“WELCOME TO HEFEI”进行加密 首先用数字代替字母,然后使用加密函数 fp=(p+3)mod 26代替翻译成字母后,得到获得到的加密信息为:“ZHOFRPH VR KHIHL”。具体过程如下: 2022/7/25计算机应用技术研究所101 RSA算法RSA算法由三位数学家Rivest、Shamir和Adleman于1977年共同提出,是至今最为广泛使用的非对称加密算法,特别适合于对通过互联网传送的数据进行加密,通常于数字签名等场合。RSA算法使用整数模余运算性质生成公钥和私钥,并进行加密和解密。R
23、SA算法原理基于欧拉定理和费马小定理,为此首先介绍这两个定理。2022/7/25计算机应用技术研究所1023.3 集合定义的自然数和归纳法证明欧拉定理2022/7/25计算机应用技术研究所103 证明2022/7/25计算机应用技术研究所104 费马小定理判定整数p为素数的一个重要方法是证明它不能被任何小于或等于其平方根的素数整除。但是,这种判定方法的效率并不高。法国数学家费马给出一个更为有效的方法,称之为费马小定理。2022/7/25计算机应用技术研究所105 证明2022/7/25计算机应用技术研究所106 例题2022/7/25计算机应用技术研究所107RSA加密 前面已经介绍了RSA算法的基本思想,以及实现这个算法的理论基础欧拉定理和费马小定理,那么如何利用RSA算法生成一个秘钥进行加密过程呢?下面就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技园区门卫招聘协议
- 医药企业运营总监聘用协议
- 市场部个人培训小结
- 旅游设施建设合同样本
- 传统产业用地预审管理办法
- 移动通信公司安全管理实施办法
- 2022年大学物理学专业大学物理二期末考试试卷A卷-含答案
- 2022年大学机械专业大学物理二期末考试试卷D卷-含答案
- 互联网企业协议休假管理办法
- 2022年大学航空航天专业大学物理二月考试题D卷-含答案
- 川芎茶调颗粒的安全性评价研究
- 手术室锐器刺伤
- 中国食物成分表2018年(标准版)第6版
- 科普类公园设计方案
- 小学英语就业能力展示
- “安全风险分级管控”工作制度(2篇)
- 心肌病和心肌炎课件
- 《艾滋病毒》课件
- 平阳港区西湾作业区防浪导流堤工程海域使用论证报告书
- 管道保温计算公式
- 录音行业的就业生涯发展报告
评论
0/150
提交评论