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