第4部分计算学科中的核心概念.pptVIP

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章    计算学科中的核心概念 4.1 算法 算法的历史简介 公元825年,阿拉伯数学家阿科瓦里茨米(AlKhowarizmi)写了著名的《波斯教科书》(Persian Textbook),书中概括了进行四则算术运算的法则。 “算法”(Algorithm)一词就来源于这位数学家的名字。 后来,《韦氏新世界词典》将其定义为“解某种问题的任何专门的方法”。 而据考古学家发现,古巴比伦人在求解代数方程时,就已经采用了“算法”的思想。 丢番图方程的可解性问题 古希腊数学家丢番图(Diophantus):代数学之父 在《算术》(Arithmetica)一书中提出了有关两个或多个变量整数系数方程的有理数解问题。 对于具有整数系数的不定方程,如果只考虑其整数解,这类方程就叫做丢番图方程。 “丢番图方程可解性问题”的实质为:能否写出一个可以判定任意丢番图方程是否可解的算法? 一个未知数的线性丢番图方程的解 ax=b,只要a能整除b,就可判定其有整数解,该整数解即b/a。 两个未知数的线性丢番图方程 的解 ax+by=c,先求出a和b的最大公因子d,若d能整除c,则该方程有解(整数解)。 问:方程13x+26y=52有无整数解? 答:13和26的最大公因子是13,13又可整除52,故该方程有整数解(如x=2,y=1即方程的解)。 例4.2 问:方程2x+4y=15有无整数解? 答:2和4的最大公因子是2,2不能整除15,故该方程无整数解。 两个未知数的线性丢番图方程 的解:欧几里德算法 给定两个正整数m和n,求它们的最大公因子,即能同时整除m和n的最大正整数。 步骤如下: (1)以n除m,并令所得余数为r(r必小于n); (2)若r=0,算法结束,输出结果n;否则,继续步骤(3); (3)将n置换为m,r置换为n,并返回步骤(1)继续进行。 例4.3 设m=56,n=32,求m、n的最大公因子 算法如下: (1)32除56余数为24; (2)24除32余数为8; (3)8除24余数为0,算法结束,输出结果8。 答:m、n的最大公因子为8。 欧几里德算法既表述了一个数的求解过程, 又表述了一个判定过程,该过程可以判定“m和n是互质的”(即除1以外,m和n没有公因子)这个命题的真假。 算法 算法的定义和特征 1.算法的非形式化定义 一个算法,就是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型问题的运算序列。 2.算法的重要特性 有穷性:一个算法在执行有穷步之后必须结束。 确定性:算法的每一个步骤必须要确切地定义。即算法中所有有待执行的动作必须严格而不含混地进行规定,不能有歧义性。 输入:算法有零个或多个的输入,即在算法开始之前,对算法最初给出的量。 输出:算法有一个或多个的输出,即与输入有某个特定关系的量,简单地说就是算法的最终结果。 能行性:算法中有待执行的运算和操作必须是相当基本的, 3.算法的形式化定义 算法是一个四元组,即(Q,I,Ω,F)。 其中: (1)Q是一个包含子集I和Ω的集合,它表示计算的状态; (2)I表示计算的输入集合; (3)Ω表示计算的输出集合; (4)F表示计算的规则,它是一个由Q到它自身的函数,且具有自反性,即对于任何一个元素q∈Q,有F(q)=q。 算法 算法实例 例4.4 求1+2+3+……+100 设变量X表示加数,Y表示被加数,用自然语言将算法描述如下: (1)将1赋值给X; (2)将2赋值给Y; (3)将X与Y相加,结果存放在X中; (4)将Y加1,结果存放在Y中; (5)若Y小于或等于100,转到步骤(3)继续执行;否则,算法结束,结果为X。 例4.5 求解调和级数 设变量X表示累加和,变量I表示循环的次数,自然语言描述算法如下: (1)将0赋值给X; (2)将1赋值给I; (3)将X与1/I相加,然后把结果存入X; (4)将I加1; (5)若I大于等于N,算法结束,结果为X;否则转到步骤(3)继续执行。 例4.6 求解斐波那契数 0,1,1,2,3,5,8,13,21,34,… (1) 来源于1202年意大利数学家斐波那契(L.P.Fibonacci)在其《珠算之书》(Liber Abaci)中提出的一个“兔子问题”: 假设一对刚出生的兔子一个月后就能长大,再过一个月就能生下一对兔子,并且此后每个月都能生一对兔子,且新生的兔子在第二个月后也是每个月生一对兔子。 问:一对兔子一年内可繁殖成多少对兔子? 在序列(1)中,每个数都是它的前两个数之和,Fn表示这个序列的第n个数,该序列可以形式化的定义为: F0=0,F1=1,Fn+2=Fn+1+Fn,n≥0 斐波那契数列还是一个关于加法算法的典型实例。 设变量X表示前一个数的值,

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档