你确实看到了舍入错误.

矩阵形式是更准确和更快的算法. Literateprograms.org列出了一个很好的实现,但它还列出了基于Lucas数的以下算法:

def powLF(n):

if n == 1: return (1, 1)

L, F = powLF(n//2)

L, F = (L**2 + 5*F**2) >> 1, L*F

if n & 1:

return ((L + 5*F)>>1, (L + F) >>1)

else:

return (L, F)

def fib(n):

if n & 1:

return powLF(n)[1]

else:

L, F = powLF(n // 2)

return L * F

上述算法和矩阵方法都具有Θ(lg n)复杂度,就像您使用的朴素递归平方方法一样,但没有舍入问题. Lucas数字方法具有最低的常数成本,使其成为更快的算法(大约是矩阵方法的两倍):

>>> timeit.timeit('fib(1000)', 'from __main__ import fibM as fib', number=10000)

0.40711593627929688

>>> timeit.timeit('fib(1000)', 'from __main__ import fibL as fib', number=10000)

0.20211100578308105

python个数计算公式_使用python中的公式计算第n个斐波纳契数相关推荐

  1. 在计算机科学中算法指的是,算法 - 为什么斐波纳契数在计算机科学中具有重要意义?...

    算法 - 为什么斐波纳契数在计算机科学中具有重要意义? Fibonacci数字已经成为计算机科学学生递归的一个流行的介绍,并且有一个强烈的论据,他们坚持在自然界. 出于这些原因,我们很多人都熟悉它们. ...

  2. python计算第n个斐波那契数_计算第n个斐波那契数

    方法一:传统递归法 时间复杂度O(2^n),空间复杂度O(n) 计算Fibonacci(10)十次平均用时0.0003s    计算Fibonacci(100)单次用时大于1min 时间复杂度极高,当 ...

  3. python个数计算公式_用python计算1-100的合数的个数

    最佳答案 具体代码如下所述: __author__ = 'Yue Qingxuan'# -*- coding: utf-8 -*-#求质数p=[2]for i in range(2,101): for ...

  4. Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数

    一.把嵌套列表压平为一层列表 def flatten(nested_list):'''这是把嵌套列表压平为简单列表并返回的函数:参数 nested_list:一个嵌套列表'''#先定义一个空列表,用于 ...

  5. python斐波那契数列第四十项_科学网—不死神兔的繁衍生息——神奇的斐波那契数列 - 霍开拓的博文...

    不死神兔的繁衍生息--神奇的斐波那契数列 • 故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契.在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月 ...

  6. python中定义函数,斐波纳契数列:1,1,2,3,5,8,13。。

    练习1:斐波纳契数列:1,1,2,3,5,8,13... (该数列中,有n个数字,从第三个数字开始:数值 =前一个数字 + 前面一个数字) 结论:n=(n-2)+(n-1) 条件:n=1或n=2时返回 ...

  7. Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列

    Fibonacci series: 斐波纳契数列, 两个元素的总和确定了下一个数,例如:1 1 2 3 5 8 13 21 34 55 Python程序如下: def fibonacci1(n):a, ...

  8. Python一行代码求解斐波那契数

    1. 斐波那契数 斐波那契数是一系列数字,其中每个数字是前两个数字的总和.斐波那契数列中的第一个和第二个数都是1,后面的数是前两个数的和. 如下所示: 1 1 2 3 5 8 13 21 34 55 ...

  9. Python还能这么玩?Turtle一个上帝的指纹!(斐波那契螺旋线)

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...

最新文章

  1. Bone Collector
  2. ITK:计算两个图像之间的均方度量值
  3. java 读取 jar properties_java:如何读取properties文件内容
  4. 【实践】预训练模型在华为信息流推荐中的应用与探索.pdf(附下载链接)
  5. ORA-01033 的解决
  6. 时间安排还是很不合理
  7. 565.数组嵌套(力扣leetcode) 博主可答疑该问题
  8. 正运动控制固件升级问题记录
  9. [Aria2][Linux]宝塔面板Aria2安装和配置教程
  10. C# Transaction 事务
  11. 2018的锅让2019来悲
  12. cpu飙高1000,几近崩溃
  13. 安全赋能区域数字化转型,普陀区副区长徐树杰带队调研上海控安
  14. 征信为民守初心!《征信业管理条例》颁布十周年
  15. 年薪30万+的HR这样做数据分析!(附关键指标免费模版)
  16. 了解公司企业:Primetics
  17. 购物网站被劫持跳转返利推广网站的分析过程和解决方法
  18. android wifi讲解 wifi列表显示
  19. html和js画圣诞树图片,基于JS2Image实现圣诞树代码,
  20. CSV文件内容乱码处理办法

热门文章

  1. 数据库一条insert插入多条记录
  2. 简单的mg动画制作方法,看到就是赚到 | 万彩动画大师
  3. Office 2016安装
  4. 如何用python编写程序打开csv格式文件
  5. php tp5修改语句,tp5修改(实现即点即改)
  6. 软件下载传送门(个人习惯自用记录)
  7. Java中setyear和getyear_java时间类Calander,Date等的问题
  8. 春天开始Spring
  9. 实录丨戴琼海:深度学习遭遇瓶颈,全脑观测启发下一代AI算法
  10. 日撸代码300行:第二天