Python递归树结构、回溯法实现

简介: Python递归树结构、回溯法实现

Python通过递归实现斐波那契数列


斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……

通过以上数列不难看出,其规律为F(N+1)=F(N-1)+F(N)。那么此时我们想计算出第20位,让我们通过Python递归来实现一下。

# 斐波那契数列
'''0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,
2584,4181,6765,10946,17711'''
#找出第20位
def find(position=20,itertime=3,lastvalue=0,nowvalue=1):
    '''
    :param position: 与迭代次数相关,寻找第20位数值
    :param itertime:因为导入了前两个值,故从第三位开始算,所以itertime=3, 
    :param lastvalue: F(N-1)
    :param nowvalue:  F(N)
    :return: 当计算到第20位时返回结果
    '''
    lastvalue,nowvalue=nowvalue,lastvalue+nowvalue   
    if itertime==position:
        return nowvalue
    itertime+=1
    return find(itertime=itertime,lastvalue=lastvalue,nowvalue=nowvalue)
print(f'第20位是:{find()}')

1684147891466.jpg

这就是Python递归实现斐波那契数列。为什么要用递归来计算呢,可点击可跳转我的另一篇博文详解Python递归算法详解,代码实现。

相关文章
|
16天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
32 2
|
1月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
26 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
3月前
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
3月前
|
算法 数据挖掘 Python
|
3月前
|
数据采集 Java Python
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
python 递归锁、信号量、事件、线程队列、进程池和线程池、回调函数、定时器
|
4月前
|
缓存 Python
Python中递归错误
【7月更文挑战第17天】
52 8
|
4月前
|
算法 Python
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
74 1
|
4月前
|
搜索推荐 Python
快速排序:Python 中的速度之王,揭秘它的递归魔法与性能极限!
【7月更文挑战第12天】快速排序**是高效排序算法,基于分治策略。它选择基准值,将数组分成小于和大于基准的两部分,递归地对两部分排序。
62 6
|
4月前
|
存储 缓存 算法
python中递归深度超限(RecursionError)
【7月更文挑战第15天】
134 1
|
4月前
|
Python
打印9*9乘法表(递归或压缩矩阵)python
打印9*9乘法表(递归或压缩矩阵)python
下一篇
无影云桌面