在计算机算法中,迭代和递归是什么意思它们有什么区别?谁能说说递归和迭代有什么区别 您所在的位置:网站首页 牛顿迭代法至少是几阶收敛 在计算机算法中,迭代和递归是什么意思它们有什么区别?谁能说说递归和迭代有什么区别

在计算机算法中,迭代和递归是什么意思它们有什么区别?谁能说说递归和迭代有什么区别

#在计算机算法中,迭代和递归是什么意思它们有什么区别?谁能说说递归和迭代有什么区别| 来源: 网络整理| 查看: 265

本文目录在计算机算法中,迭代和递归是什么意思它们有什么区别谁能说说递归和迭代有什么区别递归与迭代的区别递推,递归,迭代分别是啥意思,希望能分别递归和迭代有哪些区别递归和迭代的区别,联系,优缺点及实例对比什么是递归和迭代二者有何联系在计算机算法中,迭代和递归是什么意思它们有什么区别

举个例子:我想求1+2+3+4+..+100的值。迭代的做法:从1到100,顺着往下累加。1+2=3,3+3=6,6+4=10,10+5=15…… 程序表示, int i=1,sum=0; while(i《=100){ sum = sum +i; }递归的做法:我要求1到100的累加值,如果我已经得到1到99的累加值,将这个值加上100就是1到100的累加值;要得到1到99的累加值,如果已经得到1到98的累加值,将这个值加上99,就是1到99的累加值……最后我要得到1到2的累加值,我如果得到1自身累加值,再加上2即可,1自身的累加值显然就是1了。于是现在我们得到了1到2的累加值,将这个值加3就得到了1到3的累加值,……最后直到得到1到100的累加值。 程序表示,其中函数会调用自身,这就是递归方法的典型特征 int GetSum(int n) { if(n《=0) return 0; else return n+GetSum(n-1); }上述例子中,其实递归最后得到结果也是用迭代方法完成的,只是在程序的处理上直观看不出来。两者都能很好的完成计算任务,不同之处在于思维方式上,从而导致不同的计算方法:迭代是正向思维,从头到尾思考问题;递归是逆向思维,他假设我们已经得到了部分结果(假设我已经知道了1到99的累加值,把这个值加上100我们就得到了1到100的累加值了),从尾部追溯到头部,从而让问题简化(当然这个例子中看不出来,这里只是方便理解,有兴趣可以参考一下

谁能说说递归和迭代有什么区别

简单来说,递归就是自己调用自己,如: int abc(...) { if(...) //递归终止条件 { return abc(...); } return 0; } 而递归是重复一组指令,不断地根据变量的旧值推出新值,如: for(; ; ;) //迭代终止条件 { a = b + c; b = a; c = a; }

递归与迭代的区别

  1、“递归”是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现像.。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。  2、“迭代”的含义是:重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

递推,递归,迭代分别是啥意思,希望能分别

递推是按照一定的规律来计算序列中的每个项,通常是通过计算前面的一些项来得出序列中的指定项的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复。例:十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;2,不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法;综上得到M(n)=(n-1)[M(n-2)+M(n-1)]递推算法以初始(起点)值为基础,用相同的运算规律,逐次重复运算,直至运算结束。这种从“起点”重复相同的方法直至到达一定“边界”,犹如单向运动,用循环可以实现。递推的本质是按规律逐次推出(计算)先一步的结果。递归,就是在运行的过程中调用自己。构成递归需具备的条件:1. 子问题须与原始问题为同样的事,且更为简单;2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。例: 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法.设n阶台阶的走法数为f(n),显然有:1 n=12 n=2 f(n-1)+f(n-2) n》2算法为:当n》2时函数f(n)返回f(n-1)+f(n-2);当n=2时函数f(n)返回2当n=1时函数f(n)返回1迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。例:一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?分析:这是一个典型的递推问题。我们不妨假设第 1 个月时兔子的只数为 u 1 ,第 2 个月时兔子的只数为 u 2 ,第 3 个月时兔子的只数为 u 3 ,……根据题意,“这种兔子从出生的下一个月开始,每月新生一只兔子”,则有:u 1 = 1 , u 2 = u 1 + u 1 × 1 = 2 , u 3 = u 2 + u 2 × 1 = 4 ,……根据这个规律,可以归纳出下面的递推公式:u n = (u n - 1) × 2 (n ≥ 2)* ①对应 u n 和 u n - 1 ,定义两个迭代变量y 和 x ,可将上面的递推公式转换成如下迭代关系:①y=x*2②x=y①②两步反复迭代,就可以求出第12个月时兔子的总数了。

递归和迭代有哪些区别

深究递归和迭代的区别、联系、优缺点及实例对比(是我看到讲解递归与迭代的区别比较好的一篇文章)文章有总结两者之间的关系:1) 递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换。2) 能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出./*相对*/在数学上,递归强调的是,新的值与前面计算的好几个值有关系;比如斐波那契数列而迭代一般是只是与之间进行计算,即;计算机进行算法分析中,(我对递归的复杂度分析不熟,可以去看看《算法导论》)递归方法一般是将递归式转换成树形结构,然后是不断向下计算吧;在常见的迭代法中,有牛顿法与梯度下降法;像Tianyuan解说的那样,是一种循环逼近的方式,使得初始值进过一系列的迭代之后收敛到极限值。(再看看维基上的解释)我想最主要的是你去用这些具体的方法,才会更加了解其中的一些区别。

递归和迭代的区别,联系,优缺点及实例对比

区别和联系:递归是迭代的一个特例,从理论上讲,任何递归都可以转换成迭代。优缺点及对比:递归性能不如迭代,但是递归思路简单清晰,并且有些时候是必须要用递归才能做,而迭代是做不到的,比如,在实际开发过中,有那么一张表,描述了实体之间的层次关系的,比如要遍历所有实体之间存在的层次关系,即n:m的关系,且事先是不知道每个实体间的数量,所以如果用迭代是根本实现不了。必须借助递归进行深层次递归才能得到结果。

什么是递归和迭代二者有何联系

递归是一种自包含(调用)结构,迭代则是循环结构。二者都是重复一件事情。比如让你不断地在纸上画不重叠的圆圈就是循环;而让你不断地在圆圈内再画圆圈就是递归,比如中国的国徽就是一个递归图案。

递归应该是指递进并回归,作为一种程序结构,其表现形式为在一个函数或过程内调用自己,其特点就是简洁。在递归代码中必须包含一条有效的条件返回,否则运行时将造成系统崩溃。当递进深度超过机器容量时,同样会造成系统崩溃。所以在大型数据处理中应谨慎使用递归结构。

循环是利用带有条件的跳跃(回)指令来重复一段代码。无条件回跳就是所谓的无限循环。

既然都是重复做一件事,那么在代码中递归和迭代是可以相互替换的。同样的处理内容,迭代代码比递归代码复杂的多,也安全的多。因为递归调用是对系统堆栈的考验,递归深度越深,系统崩溃的可能性就越大。而迭代则除了时间外不会占用系统额外资源。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有