用python实现斐波那契数列的5种简单方法_Python实现斐波那契数列的几种方法

本文介绍了斐波那契数列的概念,并通过Python展示了递归、迭代和生成器三种不同的实现方式。递归实现简洁但效率较低,迭代优化了效率,而生成器则在节省内存方面表现出色,适用于处理大规模数列。通过这些实例,读者可以深入理解Python中的函数递归、循环和生成器的概念。
摘要由CSDN通过智能技术生成

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)

u=3984937183,4278295305&fm=173&app=25&f=JPEG?w=591&h=377&s=C6602EE18603014F8A7C9B2703006045

在程序中经常使用斐波那契数列来加深我们对一些结构的理解.下面我们就用python里面几种常见的结构来实现斐波那契数列:

递归实现

递归主要是在函数内部调用自己.

u=1004801527,4028610595&fm=173&app=25&f=JPEG?w=640&h=100

递归实现的代码,非常容易理解,代码也非常简洁,缺点是效率较低

迭代实现

迭代主要思想为: 循环代码中参与运算的变量同时是保存结果的变量,最常见的迭代为遍历列表

u=548111450,3723814407&fm=173&app=25&f=JPEG?w=639&h=191&s=A1D2836E4EA49F740E75EC0E0000A0C3

这里的fibonacci函数实际上是定义了斐波拉契数列的推算规则,可以从第一个元素开始,推算出后续任意的元素,这种逻辑其实非常类似generator。而且,在每次函数运行都要保存一个列表,占内存.

使用生成器来实现

生成器是一个特殊的程序,可以被用作控制循环的迭代行为,python中生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,而可以使用next()函数和send()函数恢复生成器。

生成器类似于返回值为数组的一个函数,这个函数可以接受参数,可以被调用,但是,不同于一般的函数会一次性返回包括了所有数值的数组,生成器一次只能产生一个值,这样消耗的内存数量将大大减小,而且允许调用函数可以很快的处理前几个返回值,因此生成器看起来像是一个函数,但是表现得却像是迭代器

u=541922392,3064943632&fm=173&app=25&f=JPEG?w=638&h=143&s=A9C28346EEE2F7740C5DAC0F0000F0C2

在这里返回值不再是一个列表,而是一个生成器.可以通过for in 或者 next()来取值

u=1761951067,3110084084&fm=173&app=25&f=JPEG?w=640&h=66

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值