您的位置:首页 > 编程语言 > Python开发

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

2017-11-06 00:00 295 查看
前面已经分享了几种计算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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐