网站大量收购独家精品文档,联系QQ:2885784924

数理逻辑(姜伟)17-3.4递归算法.pptxVIP

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多

数理逻辑MathematicalLogic第三章数学推理Chapter3MathematicalReasoning

复习递归定义分两步:初始步骤(初始函数值、初始元素)推导规则(从较小函数值推导当前函数值、从已有元素构造新元素)递归地定义序列递归地定义函数递归地定义集合合式公式字符串集合、字符串长度的递归定义

复习拉梅定理用欧几里德算法求gcd(a,b),其中a≥b,所使用的除法次数小于或等于b的十进制位数的5倍斐波那契数f0=0,f1=1;fn=fn-1+fn-2,对n=2,3,4,…来说

3.3递归算法

RecursiveAlgorithms

求带有具体的一组输入的问题的解可以归约到带更小的一组输入的相同问题的解1例如gcd(a,b),其中ba2可以归约到求一对更小的整数的最大公约数的问题,即gcd(bmoda,a)3一、引言

经过一系列这样的归约,直到归约到解是已知的某个初始情形为止,就可以求出原问题的解01对求gcd(a,b)来说,一直归约到两个数中较小的一个为002这样的算法可以解决广泛的问题03一、引言

定义:若一个算法通过把问题归约到带更小的输入的相同问题的实例,来解决原来的问题,则这个算法称为递归的。如何构造递归算法从函数的递归定义来求函数的值。例:给出计算an的递归算法,其中a是非零实数而n是非负整数020103一、引言

递归算法基于an的递归定义01a0=1;02an+1=a×an03连续地用这个递归定义来缩小指数,直到指数是零为止04procedurepower(a:非零实数,n:非负整数)05ifn=0thenpower(a,n)=106elsepower(a,n)=a×power(a,n-1)07一、引言

递归算法是基于归约gcd(a,b)=gcd(bmoda,a)以及当b0时,gcd(0,b)=b01proceduregcd(a,b:非负整数且ab)02ifa=0thengcd(a,b)=b03elsegcd(a,b)=gcd(bmoda,a)04例:给出求满足ab的两个非负整数a和b的最大公因子的递归算法一、引言

一、引言

1为了在序列a1,a2,…,an里搜索x,在算法的第i步比较x与ai3否则,对x的搜索就归约到少了一个元素的序列(即序列ai+1,…,an)里的搜索2若x等于ai,则i是x的位置;例:把线性搜索算法表达成递归过程一、引言

一、引言

设:search(i,j,x)是在序列ai,ai+1,…,aj里搜索x的过程01该过程的输入是个三元组(1,n,x)02若剩余序列的第一项是x,或者若序列只有一项并且它不是x,则终止03若x不是第一项而且存在其他的项,则执行同样的过程,但是搜索序列减少一项(删除搜索序列的第一项)04例:把线性搜索算法表达成递归过程一、引言

ifai=xthenloc:=iproceduresearch(i,j,x)elseifi=jthenloc:=0elsesearch(i+1,j,x)例:把线性搜索算法表达成递归过程一、引言

假定想在序列a1,a2,…,an里求出x的位置,为了执行二分搜索,首先比较x与中间项,若x等于这一项,则算法终止否则,把搜索归约到更小的搜索序列若x小于原序列的中间项,则归约到序列的前一半,否则,归约到后一半例:构造二分搜索算法的递归形式一、引言

一、引言

procedurebinarysearch(x,i,j)1ifx=amthenloc:=m2elseif(xam且im)then3binarysearch(x,i,m-1)4elseif(xam且jm)then5binarysearch(x,m+1,j)6elseloc:=07例:构造二分搜索算法的递归形式一、引言

1例:下面的递归算法当输入是正整数n时,给出n!的值32这意味着可以设计递归算法来求出递归地定义的函数在正整数处的值递归定义把在正整数处的函数值表达成在更小的整数处的函数值二、递归与迭代

0102030405Procedurefactorial(n:正整数)ifn=1thenfactorial(n)=1elsefactorial(n)=n×factorial(n-1)二、递归与迭代

存在另外一种方式,从阶乘函数的递归定义求它在整数处的值01代替连续地把计算归约到在更小的整数处来求函数的值02从在1处的函数值开始,连续地应用递归定义来求出在更大的整数处的函数值,这样的过程称为迭代03二、递归与迭代

Aprocedureiterativefactorial(n:正整数)Bx:=1Cfori:=1tonDx=i×xE{x

文档评论(0)

136****0775 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档