2016 - 2024

感恩一路有你

python递归算法 如何在Python中实现尾递归优化?

浏览量:2484 时间:2021-03-13 18:19:44 作者:admin

如何在Python中实现尾递归优化?

Python不会优化尾部递归。默认情况下,递归的最大深度约为1000。当然,可以修改底层的默认最大深度。但是我们可以使用Python内置的yield将尾部递归函数转换为生成器。我只需要连续执行它的下一个方法。递归的主要思想是能够重复一些动作,如简单阶乘、幂、回溯八皇后、数独、河内塔和分形。

由于堆栈机制,一般递归可以保持一些变量处于历史状态,例如返回x*Power。。。您提到过,但是有些问题可能很大或太深,需要尽可能避免递归,因为堆栈可能会溢出。另一个

问题是Python不支持尾部递归优化

所以尽量避免递归。

Def power(x,n)

如果n< 0:

return 1

return x*power(x,n-1)

power(3,3)

3*power(3,2)

3*(3*power(3,1))

3*(3*power(3,0))

3*(3*1)),其中n=0,return 1

3*(3*3)

3*9

当函数参数n=0时,开始撤退到第一次通电结束。

关于python递归函数怎样理解?

#函数返回两个值:递归次数,所需值

如果M==1:返回1,M

返回1,sum(M-1)[0],M sum(M-1)[1

]Cishu=sum(10)[0

]print Cishu

>>> def sum(M,n=1):]。。。[TIF M==1:返回n,M。。。[树转角n,m sum(m-1,n1)[1

>>>打印sum(10)[0

>>>打印sum(5)[0

]5]

python递归算法 python递归算法经典实例 python中递归函数的基例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。