首页 >

Python递归函数到底是什么原理? |micropython程序用什么软件编写

centos 默认python,python 编译 lib,python 公安教学,python嵌入式部署,python board,python 火花,分解整数python,python打印软件,python sub 分组,python 模拟request,micropython程序用什么软件编写Python递归函数到底是什么原理? |micropython程序用什么软件编写

构成递归需具备两个条件:

  1. 子问题须与原始问题为同样的事,且更为简单;
  2. 不能无限制地调用本身,须有个出口(即要有个边界),化简为非递归状况处理其中递归又分为直接递归和间接递归。

递归又分为两情况,分别为直接递归和间接递归。

  • 直接递归是在A函数中嵌套使用A函数,然后有一个停止该函数的条件。
  • 间接递归是在A函数中调用B函数,然后在B函数中调用A函数,即间接调用自己实现递归。

这里偶用著名的斐波那契数列(即从第3项起,后一个数为前两项之和)做演示:

运行得出第10项结果为34,结果正确。现在大家来分析其运行过程中,为方便理解,大家计算第5项,运行过程大家用如下图表示:

从图中大家可以看出,所谓递归,就是把大的事件,逐步细化分别进行处理,这就是分治的思想。

那么递归是在计算机中怎样实现的呢?如果大家有了解过数据结构这门课程,大家就会知道,这就是用栈来实现的。

还有一点值得注意的,大家看上图是不是有些相同的部分重复调用了,所以说使用递归会使程序变得相对慢一些,在日常开发中,大家是比较少用的,虽然递归的代码块看起来比较简洁。


Python递归函数到底是什么原理? |micropython程序用什么软件编写
  • FCC宣布废除「网络中立性」引发美国互联网震荡,什么是「网络中立原则」?此次废除将带来什么影响? - 网络|
  • FCC宣布废除「网络中立性」引发美国互联网震荡,什么是「网络中立原则」?此次废除将带来什么影响? - 网络| | FCC宣布废除「网络中立性」引发美国互联网震荡,什么是「网络中立原则」?此次废除将带来什么影响? - 网络| ...

    Python递归函数到底是什么原理? |micropython程序用什么软件编写
  • 面试前端时,当被问常去哪些网站时,你会怎么回答考官? - 网络|
  • 面试前端时,当被问常去哪些网站时,你会怎么回答考官? - 网络| | 面试前端时,当被问常去哪些网站时,你会怎么回答考官? - 网络| ...

    Python递归函数到底是什么原理? |micropython程序用什么软件编写
  • 电脑如何注册我的世界Java正版? - 网络|
  • 电脑如何注册我的世界Java正版? - 网络| | 电脑如何注册我的世界Java正版? - 网络| ...