社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Fibonacci数列第n项的第7种计算方法:Python列表

Python小屋 • 8 年前 • 460 次点击  

前面已经分享了几种计算Fibonacci数列第n项的方法,详见Python快速计算Fibonacci数列中第n项的方法三种Fibonacci数列第n项计算方法及其优劣分析,本文分享第7种(过几天分享第8种),主要演示列表的append()和pop()这两个方法和反向索引的用法。如果n小的话,可以只append()不pop()(注意,这样的话append()的参数要改为data[-1]+data[-2]),但是如果n很大的话会导致内存崩溃。

下面的代码使用第800万项对本文的第7种方法和前面6种中最快的方法3进行了测试和对比,事实证明,算法3是无敌的,也是最简单的。

大家不妨分析一下,本文的方法7比方法3慢的原因是什么?

from time import time


def fibo3(n):
    a, b = 1, 1
    for i in range(2, n+1):
        a, b = b, a+b
    return a


def fibo7(n):
    data = [1, 1]
    for _ in range(2, n):
        data.append(sum(data))
        data.pop(0)
    return data[-1]


n = 8000000

for fibo in (fibo3, fibo7):
    start = time()
    r = str(fibo(n))
    print(fibo.__name__,
          len(r),
          sep=':',
          end=':')

    print(time()-start)


运行结果:

fibo3:1671901:619.382312297821
fibo7:1671901:1148.716125011444


----------相关阅读----------

三种Fibonacci数列第n项计算方法及其优劣分析

Python快速计算Fibonacci数列中第n项的方法

当Python列表遇上复合赋值运算符+=

Python把嵌套的字符串列表转换为整数列表的两种方法

小议Python列表和元组中的元素地址连续性

Python把列表中的数字尽量等分成n份

Python元组与列表的相同点与区别

详解Python列表推导式

对Python列表进行封装和二次开发实现自定义栈结构

列表元素循环移位中Python切片的妙用

Python列表与数字的四则运算

封装Python列表实现多下标访问

Python_今天是今年第几天

使用Python列表实现向量运算

Python列表模拟页面调度LRU算法(京东2016笔试题)

Python组合列表中多个整数得到最小整数(一个算法的巧妙实现)

Python编写人机对战小游戏(抓小狐狸)

详解Python使用模拟退火算法求解列表“最大值”


祝所有程序员1024节日快乐

学会提问,你就成功了一大半!

盘点那些让人上火的提问方式(论如何让交流更高效)



----------喜大普奔----------

1、继《Python程序设计基础》(2017年9月第5次印刷)、《Python程序设计(第2版)》(2017年9月第4次印刷)、《Python可以这样学》(2017年7月第3次印刷)系列图书之后,董付国老师新书《Python程序设计开发宝典》(2017年10月第2次印刷)。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3


2、董付国老师新作《中学生可以这样学Python》已于2017年10月正式出版,很快会在各大书城全面上架。


3、董付国老师6本Python系列图书阅读指南


4、董老师免费视频地址: http://pan.baidu.com/s/1c14WYn2 密码: 9xwr


5、董老师收费视频课:

CSDN学院(2017年11月6日-17日,8折):http://edu.csdn.net/search?keywords=%E8%91%A3%E4%BB%98%E5%9B%BD&type=0


龙果学院:http://www.roncoo.com/course/list.html?courseName=Python%E5%8F%AF%E4%BB%A5%E8%BF%99%E6%A0%B7%E5%AD%A6



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/FseVTChTN6
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4035