温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

是什么递归函数

发布时间:2021-10-14 10:07:45 来源:亿速云 阅读:106 作者:iii 栏目:编程语言

这篇文章主要讲解了“是什么递归函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“是什么递归函数”吧!

说到递归函数,不得不联想到我们小时候听过的一则故事:

从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,故事的内容是:从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,故事的内容是:从前有座山...

这个故事严格意义上来讲不是递归,因为它会一直重复下去,没有终止条件,我们称之为死循环,那到底什么是递归呢?

再讲一个故事:

一个小朋友坐在第10排,他的作业本被小组长扔到了第1排,小朋友要拿回他的作业本,可以怎么办?

他可以拍拍第9排的小朋友,说“帮我拿第1排的本子”,而第9排的小朋友可以拍拍第8排小朋友,说“帮我拿第1排的本子”...如此下去,消息终于传到了第1排小朋友那里,于是他把本子递给第2排,第2排又递给第3排...终于,本子到手啦!

这就是递归,拍小朋友的背可以类比为函数调用,而小朋友们都记得要传消息、送本子,是因为他们有记忆力,这可以类比栈。

递归的过程:

是什么递归函数

递归:就是在运行的过程中调用自己。

成立条件:

1. 子问题须与原始问题为同样的事;

2. 每次递归都是为了让问题规模变小且更为简单;

3. 不能无限制地调用自己,须有个明确的终止条件。

递归函数:一个函数在其内部调用该函数自己,并满足上述成立条件,那么这个函数就是递归函数。

那递归的作用又是什么?(为什么我们要用到递归呢?)

作用: 递归算法可以解决一些通过递归定义的题目 —— 通俗一点来讲就是一个大问题中蕴含着一些小问题,而这些小问题同时又与大问题的结构相同,只是规模更小了。

递归蕴含的核心思想就是数学归纳法:为了求解问题p(n),首先要解决基础情形p(1),然后假定p(n-1)已经解决,在此基础上若p(n)得解,那么所有问题均得解。

下面用数学代入法来理解就更清晰了,我们用递归来计算6的阶乘(先向前递进,再向后回归):

f(6)
=> 6 * f(5)
=> 6 * (5 * f(4))
=> 6 * (5 * (4 * f(3)))
=> 6 * (5 * (4 * (3 * f(2))))
=> 6 * (5 * (4 * (3 * (2 * f(1)))))
=> 6 * (5 * (4 * (3 * (2 * 1))))
=> 6 * (5 * (4 * (3 * 2)))
=> 6 * (5 * (4 * 6))
=> 6 * (5 * 24)
=> 6 * 120
=> 720

感谢各位的阅读,以上就是“是什么递归函数”的内容了,经过本文的学习后,相信大家对是什么递归函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI