鱼C论坛

 找回密码
 立即注册
查看: 2761|回复: 6

[技术交流] Python 实现斐波拉契数列的几种方式

[复制链接]
发表于 2020-8-4 22:18:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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




代码本体
本人Python小菜鸡,新手一枚,分享自己平时学习的笔记内容
写的不好还请见谅,欢迎大佬指点不足
def Meth_one(n):
    """
    第一种方法,也是最标准的方法
    :param n: n为指定的循环次数,可随意修改,建议 10 以上
    :return: 返回为 列表c的值
    """
    a,b=0,1
    c=[]
    for i in range(n):
        c.append(a)
        a,b=b,a+b
    return c

def Meth_two(n):
    """
    第二种方法,比较另类,不是以 a 为准,而是以 b 为准的写法,
    需要一个临时变量 tmp
    :param n: n为指定的循环次数,可随意修改,建议 10 以上
    :return: 返回为 列表c的值
    """
    a,b=0,1
    c=[]
    for i in range(n):
        c.append(b)
        tmp = a
        a,b=b,tmp+b
    return c

def Meth_three(n):
    """
    第三种方法,比较高级的写法,使用 yield语法,每获取一个元素就将这个元素送出去
    好处是并不需要代码运行完成后再来全部一起输出,而是可以先看到前面运行完的内容
    适用于非常耗时的操作
    :param n: n为指定的循环次数,可随意修改,建议 10 以上
    :return: 这里返回为默认的 None
    """
    a, b = 0, 1
    for i in range(n):
        yield a
        a, b = b, a + b

print(Meth_one(20))
print(Meth_two(20))
#第三种方法需要使用循环将其取出,直接print的话返回的结果是内存地址
for i in Meth_three(20):print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 22:28:14 | 显示全部楼层
    第二种方法,比较另类,不是以 a 为准,而是以 b 为准的写法,
    需要一个临时变量 tmp
    :param n: n为指定的循环次数,可随意修改,建议 10 以上
    :return: 返回为 列表c的值
temp 可以去掉。

而且第一种和第二种不能算是两种方法,只是第一种以0开始,第二种以1开始而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 22:35:44 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-4 22:28
temp 可以去掉。

而且第一种和第二种不能算是两种方法,只是第一种以0开始,第二种以1开始而已。

谢谢指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-5 08:13:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-8 10:08:15 | 显示全部楼层
。。。。。。。。。。。。。111111111111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-9 20:55:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-7 03:49:47 | 显示全部楼层
其实斐波那契数列又叫黄金分割数列,是可以算出来通式的哦,大佬可以在网上搜一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 13:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表