前面已经分享了几种计算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

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

  1. 计算Fibonacci数列第n项的第8种方法(数学推导与Python实现)

    感谢山东工商学院学院厉玉蓉老师提供的完美数学推导,我在重写和整理时略加修改,比如变量替换时她喜欢用字母z,而我喜欢用x,哈哈.当然,还有另外几个小地方^_^ 本文从Fibonacci数列第n项的通项公 ...

  2. C语言 编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中。其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34...该数列除前两项之外,其他任意

    编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中.其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34-该数列除前两项之外,其他任意一项都是相邻的前 ...

  3. 调用函数,输出Fibonacci数列的m项至n项

    Description 定义递归函数fib(n),它的功能是返回第n项Fibonacci数,如fib(7)的返回值是13. 在主函数中,输入两个正整数m和n,调用该函数输出Fibonacci数列的m项 ...

  4. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)

    计算并打印Fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始. 要求: 1)定义表示调用次数的全局变量count: 2)定义用递归方法求Fibonacci数列的Fib()函数. 函数 ...

  5. matlab求斐波那契数列第n项的值,求fibonacci数列第n项的值. 1 1 2 3 5 8....n ?

    [C语言]用递归算法编写一个程序求Fibonacci数列的第n项值 #includeunsignedintFibonacci(intn);intmain(void){inti;for(i=1;i vb ...

  6. 蓝桥杯Fibonacci数列第n项模10007取余问题

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  7. 6-3 计算Fibonacci数列每一项时所需的递归调用次数

    6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 point(s)) 计算并打印Fibonacci数列每一项时所需的递归调用次数,数列第一项从1开始. 要求: 1)定义表示调用次数 ...

  8. C语言—递归函数 用递归方法编程计算输出Fibonacci数列,同时打印出计算Fibonacci数列每一项时所需的递归调用次数。

    用递归方法编程计算输出Fibonacci数列,同时打印出计算Fibonacci数列每一项时所需的递归调用次数. **输入格式要求:"%d" 提示信息:"Input n:& ...

  9. fibonacci数列前20项_面试题精选:神奇的斐波那契数列

    斐波那契数列,其最开始的几项是0.1.1.2.3.5.8.13.21.34-- ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义. f0 = 0 f1 = 1 f(n) = f ...

最新文章

  1. oracle 11g 逻辑备库,通过Oracle 11g 逻辑standby实现BI的需求
  2. Linux进阶 vim grep sed awk 正则表达式
  3. 如何判断设备是上电复位还是软复位(主动调用复位接口或者看门狗复位,W600)
  4. boost::log::dynamic_type_dispatcher用法的测试程序
  5. 首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串
  6. anaconda如何卸载库_小白必看!Anaconda安装全攻略
  7. 三包围结构的字是什么样的_一年级语文重点(字、字母、字词、词语、句子)知识点汇总!...
  8. golang(5)使用beego 开发 api server 和前端同学拆分开发,使用swagger
  9. Android提升篇系列:Activity recreate(Activity 重新创建/自我恢复)机制(一)
  10. pyinstaller 用法
  11. Android 里的adb命令
  12. TimesTen Classic 18c 卸载 (uninstall)全过程
  13. input输入框历史记录清除
  14. WSAData结构体的作用
  15. 塑胶卡扣弹性计算公式_塑胶产品结构设计卡扣
  16. 使用八种牛云存储解决方案ios7.1的app部署问题
  17. 分享陌陌怎么站街引流附近如何不屏蔽
  18. 防火墙和系统安全防护
  19. django 返回文件字节流
  20. pygame 等有缘人接盘

热门文章

  1. 服务器第二代型号,SK Hynix公开第二代服务器用SSD
  2. 高级程序员证书_过了而立之年的程序员应该何去何从?
  3. 爬虫demo_全自动爬虫,你爱了么!解放双手的时刻
  4. 玩转 SpringBoot 2.x 之自定义 Banner 日志输出原理篇
  5. Tomcat,出现乱码问题
  6. java分布式事务 实例_spring整合atomikos实现分布式事务的方法示例
  7. c++:怎么将ctime时间转化为一个具体的秒数值_Linux下如何删除长时间不使用的旧文件?...
  8. android的cantext对象,安卓Android Context类实例详解
  9. webpack debug
  10. JavaWEB过滤器和监听器技术