时间:2021-05-22
上期我们介绍了函数式编程,这期内容就是关于递归的函数内容,本期还是按照老规矩,给大家进行核心整理,内容通俗易懂,搭配实际应用,以供大家理解。
关于递归:
百度解释:是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。
总结理解:递归就是在函数内部调用自己的函数被称之为递归。
实例演示:
#直接调用自己:deffunc:print('fromfunc')funcFunc#间接调用自己deffoo:print('fromfoo')bardefbar:print('frombar')fooFoo#递归的实现:defage(n):ifn==1:return18returnage(n-1)+2print(age(5))#age(5)=age(4)+2第一次进入#age(4)=age(3)+2第二次进入#age(3)=age(2)+2第三次进入#age(2)=age(1)+2第四次进入#age(1)=18第五次进入,最后判断终止条件#age(n)=age(n-1)+2#n>1递归终止条件#age(1)=18#n=1等于终止条件递归的回溯与递推
递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推。回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯。
#实例l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15,[16,[17,]],19]]]]]]]defsearch(l):foriteminl:iftype(item)islist:search(item)else:print(item)search(l)阶乘实例代码:
deffact(n):ifn==1:return1returnn*fact(n-1)上面就是一个实现阶层的递归函数,我们来试一试。
>>>fact(1)1>>>fact(5)120>>>fact(100)93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000来看一看计算过程:
===>fact(5)===>5*fact(4)===>5*(4*fact(3))===>5*(4*(3*fact(2)))===>5*(4*(3*(2*fact(1))))===>5*(4*(3*(2*1)))===>5*(4*(3*2))===>5*(4*6)===>5*24===>120斐波那契数列
deffib(n):ifn<2:returnnelse:returnfib(n-1)+fib(n-2)汉诺塔
defhanoti(n,x1,x2,x3):if(n==1):print('move:',x1,'-->',x3)returnhanoti(n-1,x1,x3,x2)print('move:',x1,'-->',x3)hanoti(n-1,x2,x1,x3)到此这篇关于python递归函数用法详解的文章就介绍到这了,更多相关python递归函数用法介绍内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python中尾递归用法。分享给大家供大家参考。具体分析如下:如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当
有关php递归函数的用法,分享几个php递归函数的例子,在php编程中,使用递归进行函数调用很常见,递归函数用的好,可以提高代码效率,通过例子学习php递归函数
Python递归函数如果一个函数体直接或者间接调用自己,那么这个函数就称为递归函数.也就是说,递归函数体的执行过程中可能会返回去再次调用该函数.在python里
本文实例讲述了JavaScript递归函数定义与用法。分享给大家供大家参考,具体如下:递归函数是一个函数通过名字调用自身的情况下形成的,比如经典的递归阶乘函数:
Javascript高性能之递归,迭代,查表法详解递归概念:函数通过直接调用自身,或者两个函数之间的互相调用,来达到一定的目的,比如排序,阶乘等简单的递归阶乘f