问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

递归是怎么一回事?哪位老师能否通俗易懂的讲讲原理?

发布网友 发布时间:2022-04-23 10:01

我来回答

2个回答

热心网友 时间:2023-10-10 15:16

递归通俗的讲就是一个函数在其代码中反复调用自身。你应该知道菲波纳契数列,这个数列的定义是

f(x)=1 (x=1)
f(x)=2 (x=2)
f(x)=f(x-1)+f(x-2) (x>2)
也就是说从第三项开始的每一项的值都等于是前两项之和。这在数学中叫递推数列--高中数学内容。
如果把它变为一个要求第n个菲波纳契数的代码的话,应该如下所示(为了避免语言不通:)我使用伪代码):

int f(int step)
在这里x为上面所说的x变量,也就是要求的是第x项的值
{
if step=1
{
return 1
}
else if step=2
{
return 2
}
如果求得是第一项和第二项的话,就分别返回1和2,并退出函数

return f(x-1)+f(x-2)
否则的话就返回前面两项的和
}

这里的关键是最后一句。这里函数的返回直又要反过去调用它自身计算前面两项的值,这样就会反复调用,直到x变量在某次调用中变为1和2,返回已知的第一项和第二项的值,在层层返回,最后得出要求的第x项的值

说到本质的话,递归是一段程序的代码反复效用,把程序的参数等变量保存在一个堆栈里,直到到了边界条件以后再层层返回,将堆栈中的数据弹出计算,最后得到结果

热心网友 时间:2023-10-10 15:16

补充一下,递规包括直接递规和间接递规。直接递规是指在代码中反复调用自身,而间接递规是间接地调用自身。
比如:

int g(int x);
int f(int x)
{
if( x<=0 )
return x ;
else
return g(x-1)+2 ;
}
int g(int x)
{
return f(x)*x ;
}
益学堂的都业华讲中枢理论,但我看原著时看到的递归是什么意思呢?

递归是原著中讲到的数学函数,我们不需要做过多研究探讨。都老师的课上是把原著中的数学公式、理论阐述成通俗易懂的方法以便大家理解的。

...的成长教育具有重要作用。”这句话为什么是递归性?

由于在现时的社会大环境、应试教育模式和接收西方开放式教育等重重因素影响下,我们的孩子就像生活在一个大染缸里一样,很容易就被染污了,沾染上某些不良习气,例如娇横任性、叛逆不听话、不诚实、上网成瘾、打架、厌学、好动、注意力不集中、上课不专心等问题,尤其是处于幼儿及青少年阶段的中学生情况更...

...一下是老师的代码,老师说还可以用递归的方法。求解释。

2. 当统计完所有数据个位上的1的个数以后,我们还需要统计这些数据十位及以上的各位的一的个数,也就是不考虑个位了。既然不考虑个位,那就相当于把原来的数据个位都去掉,也就是把原来的数除以10,来统计了;此时,原来的十位成为了个位,这个问题就又转换成了统计个位上1的个数的问题了。要注...

赵老师,请问一个菜鸟问题:c#中,静态函数可以正确实现递归调用功能吗?静 ...

先来给你解释一下这个问题.递归其实最开始是程序员们为了方便自己写特殊的循环所使用.最开始的初衷是实现例如∑ 等数学运算所衍生出的循环方式.那么这么来看.你在一个循环中是否可以调用一个函数.问题只出在你的访问权限.从您的描述中来看.您想到的或者说担心的应该是所谓的变量值的存在时长或生命周期...

哪里有姜久才老师的计算机二级VF考试的视频讲课资料(要的全部的,不是...

一、计算机系统组成及工作原理 ⒈计算机系统组成: ⑴计算机的发展。 ⑵计算机的分类及应用。 ⑶计算机硬件结构。 ⑷主要部件功能。 ⑸计算机软件的功能与分类。 ⑹系统软件与应用软件。 ⒉计算机工作原理: ⑴计算机中数的表示。 ⑵运算器。 ⑶控制器。 ⑷存储器。 ⑸输入与输出系统。 ⒊计算机的主要性能: ⑴计算机...

日拱一卒,伯克利YYDS,用Python写一个Lisp解释器(五)

只要理解了尾递归的原理,代码就水到渠成了。Problem 21 macros允许语言本身被用户拓展,简单的macros可以被define-macro特殊类型实现。不过必须以定义过程的形式执行,它也会创建一个过程,就像是define一样。然而这个过程拥有一个特殊的的evaluate规则:它先应用参数,而不是先evaluate参数,再evaluate结果。 最终的评估过程在...

数据结构,怎么利用非递归后序遍历找到x节点的所有祖先,以我的智商...

当在二叉树中后序遍历到访问某结点时 ,从栈顶到栈底正好是该结点从双亲开始直到根的所有结点(当然也就是该结点的所有祖先),因此这段程序就是非递归到该结点时,从栈底到栈顶输出栈中所有元素,也就是该结点的所有祖先

python怎么学习?

一、清楚学习目标 无论是学习什么知识,都要有一个对学习目标的清楚认识。只有这样才能朝着目标持续前进,少走弯路,从学习中得到不断的提升,享受python学习计划的过程。虽然目前的编程语言有很多,但是基础语法上的概念,本质上都是相通的。可以做到一通百通。所以没有必要为了学哪门语言纠结太多。python...

自学c语言 零基础 看什么书 该怎么学

《《啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书》.zip》百度网盘资源免费下载 链接:https://pan.baidu.com/s/1aEXrb1oxnRmMWUlafELpfQ 提取码:pusr啊哈C语言:小学生坐在马桶上都可以读懂的C语言编程入门书

大学数学(计算机专业)

我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。 汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到...

感恩老师辛苦老师的话 为什么要感恩老师的语言 感谢老师们的 学生感谢老师的话真实 给老师的话 老师的话 递归的定义 老师负责 老师辛苦
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么信用卡审核快 上海的地铁11号线北段2期是在哪里? 请问知道一个电话号码就可以去电信局把这个号码的电话记录和短信单子... 职工医疗保险交够多少年才能享受? 卷心菜炒粉条的家常做法是怎样的? 全世界所有的FPS网游 请问这是思科路由器里面ARP映射吗?(arp 10.16.252.210 3C07.7178... 主卧18平方,次卧18平方,客厅25个平方格力家用中央空调一拖三。连... 格力, 大金,三菱重工,三菱电机中央空调哪个好,家中客厅加餐厅50㎡,主... 客厅餐厅28平方,主卧14平方,次卧卧12平方,书房8平方,配什么系列的大金中... 数据结构中的二叉树中的递归怎么理解? 什么是递归,用Java怎么实现? java中递归算法是什么怎么算的? 递归怎么理解 怎么调用 举个列子 递归怎么实现 请问递归到底是怎么一回事? 什么是递归函数? 怎样实现递归? 如何理解递归 汽车买保险应该怎么买划算? 新买的小车要怎么买保险?主要购买的哪些项目? 微信发送不了信息,图片都变成黑色的是不是封号了? 微信被封了,需要选择被封账号的头像,但是上面没有我的头像…怎么解? 微信好友被封号了,头像和朋友圈背景封面在,其他照片没有了多久可以被解 我被永久封号了。想把微信的头像换掉,改怎么做? 微信好友如果被永久封号了,我还能打开他的头像吗? 朋友的微信被封号怎么知道他是短期封号还是永久封号,头像和朋友圈背景图... 被封了,怎么才能换头像? 被封了,但是从朋友那了解到没几天自己微信的昵称和头像全变了,是不是被盗号了? 被永久封停后 头像是被封时候的头像吗?还能搜到这个微信吗? macbook air内的某些文件突然不见了,怎么恢复? 递归怎么样理解 C语言递归算法是怎么执行的 什么是递归函数,递归函数是怎样执行的 大家怎么理解递归的 如何计算递归 java中的递归方法是怎么样的?请举例解析一下 类似于maka.im的在线制作网站有哪些? 怎么样去理解递归函数 哪里有在线制作网页的网站? 如何学习递归 如何搭建一个在线的类似夺目的在线视频制作网站? 怎么制作一个网页商城 毕业短视频动画制作有什么可以在线制作网站推荐? 有没有自己可以做动画的在线动画制作网站?初学者一枚 行测,公共基础,有没有在线做题的网站? 动画制作在线网站用哪些? 哪有在线做数学题的网站 在线图片制作网站都有哪些,哪个最好用? 问一下。这俩字怎么念? 大家都知道哪些复姓啊