2016 - 2024

感恩一路有你

python入门教程(非常详细) 关于python递归函数怎样理解?

浏览量:1497 时间:2021-03-11 19:55:09 作者:admin

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

递归的主要思想是能够重复一些操作,例如简单的阶乘、幂、回溯中的八皇后、数独、河内塔、分形。

由于堆栈机制,一般递归可以保持一些变量处于历史状态,例如返回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时,开始撤退到第一次通电结束。

如何理解汉诺塔递归?

河内塔可以理解为移动塔的游戏,移动n层塔从一个支柱到另一个

2。这是河内塔的递归原型,汉诺塔(n,a,c)-n层塔从一根柱子移动到c柱;每次你必须返回到这个原型,它被认为是递归完成

!3. 在中间B柱的帮助下,河内塔的原型被写为hunnuota(n,a,B,c)-n层塔在B柱的帮助下从a柱移动到c柱,这应该被理解;

4。递归需要一个出口,这是控制条件。当n=1时,塔可以直接从a移到C,C是出口

5。当n>1时,这一步是理解汉诺塔递归的关键,它必须形成n-1层移到C柱的形式,可分为三步:

A.如果n层不能同时移动,可以理解为先将A上面的n-1层移到B柱

Ba柱,塔的剩余n层移到C柱,

C,然后在B列上形成n-1层移动到C列——

递归完成

首先,递归不是python独有的。递归是一种算法。简单地说,函数一直调用自己,直到达到停止条件。

递归有两个条件:

递归可分为两种情况:直接递归和间接递归。

这里我用著名的斐波那契数列(即从第三项开始,最后一个数是前两项的和)来演示:

从图中我们可以看出,所谓的递归就是逐步细化,分别处理大事件,这就是分而治之的思想。

那么递归是如何在计算机中实现的呢?如果我们研究了数据结构的过程,就会知道它是通过栈来实现的。

同样值得注意的是,我们可以看到上图中的某些相同部分是否被重复调用。因此,递归的使用将使程序相对缓慢。在日常开发中,我们很少使用它,尽管递归代码块看起来很简单。

python入门教程(非常详细) python递归算法经典实例 汉诺塔python用递归实现

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