Python【斐波纳契】3种算法及其复杂度

Algorithm:【算法进阶之路】之算法面试刷题集合—斐波那契数列的简介、常用的解决算法、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略 ​ Algorithm:【算法进阶之路】之算法面试刷题集合—斐波那契数列的简介、常用的解决算法、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略 目录 斐波那契数列的简介 斐波那契数列代码实现 exe程序应用(斐波纳契时钟设计) 斐波那契数列的简介 1、斐波那契数列的概述—前2数之和、增速非常快:黄金分割、植物叶子/果实数量 背景 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci 阅读详情
打印fibonacci前32位,导入time模块进行计时
from time import time
num = 32
1、列表法
start = time()
def fib(n):
    if n < 3:
        return 1
    elif n >= 3:
        ls = [1, 1]
        for i in range(3, n):
            ls.append(sum(ls))
            del ls[0]
        return sum(ls)
print(' '.join(str(fib(i)) for i in range(1, num + 1)))
print(time() - start)
2、递归法
start = time()
def fb(n):
    if n < 3:
        return 1
    elif n >= 3:
        return fb(n - 1) + fb(n - 2)
print(' '.join([str(fb(i)) for i in range(1, num + 1)]))
print(time() - start)
3、迭代器法
start = time()
def fbiter(n):
    ls = [0, 1]
    i = 1
    while i < n:
        yield str(ls[1])
        ls.append(sum(ls))
        del ls[0]
        i += 1
print(' '.join(fbiter(num + 1)))
print(time() - start)
复杂度
-时间复杂度空间复杂度
列表法n3
递归法2n2^n2nn
保姆级教程:用Adams/Car和Simulink搞定你的第一个整车联合仿真(附模型文件) 本文提供了一份详尽的Adams/Car与Simulink联合仿真教程,涵盖从环境配置到模型导出的全流程。通过实战案例解析,帮助工程师快速掌握多体动力学仿真与控制算法开发的集成技术,特别适合汽车工程领域的初学者。文章还包含常见问题解决方案和性能优化建议,助您高效完成整车联合仿真项目。 阅读详情

相关推荐

DeepSeek-OCR又更新:一起看下OCR1和OCR2

DeepSeek-AI 最近又又开源了,这次是DeepSeek-OCR2,结合之前发布的DeepSeek-OCR ,可以发现DeepSeek走出了一条不同于主流 OCR 方案的技术路线。第一代模型探索了**“视觉作为文本压缩介质”的可行性,打破了传统的序列长度限制;第二代模型则通过“Visual Causal Flow(视觉因果流)”**架构,将因果推理引入视觉编码器,解决了复杂排版下的阅读顺序难题。本文将从架构设计、逻辑结构、训练范式及工程实现四个维度,深度剖析这两代模型的异同与创新。

kakaZhui的博客 624

python-组合数据

组合数据笔记集合序列类型元组列表字典词频统计(应用) 学习慕课:python学习的笔记 集合 要创建一个空集合,只能用se()方法。 集合运算 重点应用:数据去重 序列类型 序号的索引:正反两种。 ls[::-1]表示对序列取反操作。 元组 元组是一种序列类型,一旦创建就不能被修改 使用()和tuple()创建,元素间使用,逗号分割 可以使用,或者不使用小括号 其中creature[::-1]不改变原有元组的值,是生成了一个新的和原始元组反序的元组。 列表 列表是一种序列类型,创建

erdaidai的博客 1284

芯片低功耗设计的两种常用EDA流程

如题。

EricWZY2008的专栏 5559

python-关于del

python中del删除的变量而不是变量中的数据,再python中,变量就是一个引用,他指向一块内存区域,这个内存区域中存放的就是数据,我们使用del,删除的就是这个引用,并不会影响内存中的数据。 li=[1,2,3,4,5]  #列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4]        first=li[0]  

每天进步一点点 573

CAB单片机开发指南

CAB单片机开发使用指南,IDE安装及烧录注意事项

Zoebuxiangtian的博客 1559

【通俗易懂】Windows系统安装TensorRT

NVIDIA TensorRT是一个由NVIDIA公司开发的用于深度学习推理的高性能SDK。它专门设计用于在NVIDIA GPU上进行高效的神经网络推理,能够大幅度提升深度学习模型的推理速度和效率。TensorRT的主要特点包括:模型优化:TensorRT通过层融合、精度校准、动态形状等技术优化模型,减少推理时的计算量和内存占用。多精度推理:支持多种精度推理,包括FP32、FP16、INT8等,以平衡性能和精度。

王尼莫的博客 1587

【第六周】组合数据类型

python

Люй ли的博客 1304

把 Client 当成 ABAP 系统的多租户底座:从 sy-mandt 到 CDS_CLIENT 的隔离机制与工程实践

本文深入解析SAP ABAP系统中Client概念的本质与应用。Client不仅是数据表的MANDT字段,更是会话级别的隔离边界,贯穿用户登录、授权和数据访问控制全过程。文章从ABAP SQL的隐式Client处理机制出发,详细介绍了USING CLIENT、USING ALL CLIENTS等安全跨客户端访问方式,并对比了传统CLIENT SPECIFIED的风险。同时阐述了ABAP CDS中@ClientHandling注解的类型与算法选择,包括#AUTOMATED自动拼接和#SESSION_VARIA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 184

python向lt新增5个元素,038 序列类型操作-元组类型和列表类型

[TOC]一、概要序列类型定义序列处理函数及方法元组类型及操作列表类型及操作序列类型应用场景二、序列类型定义序列是具有先后关系的一组元素序列是一维元素向量,元素类型可以不同类似数学元素序列: s0, s1, … , sn-1元素间由序号引导,通过下标访问序列的特定元素序列是一个基类类型 2.1 序号的定义 三、序列处理函数及方法操作符及应用描述x in s如果x是序列s的元素,返回True,否则返...

weixin_30587341的博客 2903

vue2学习笔记2-老规矩,从Hello World开始,了解Vue实例和模板

想要把“Hello,World”放置在页面上,首先需要准备一个HTML的块级元素div,来承接内容。

l_q_l的专栏 1259

CVE-2021-3156本地提权漏洞复现

受影响版本 sudo: 1.8.2 - 1.8.31p2 sudo: 1.9.0 - 1.9.5p1 测试 我这里是在本地centos7上进行测试。 需要目标机器上存在python编译器、目标主机出网或者能上传文件到目标主机。 以非root用户登录系统,并运行如下命令: sudoedit -s / 通常响应一个以 sudoedit: / 开头的报错,多半存在漏洞。 利用 提权脚本: https://www.o2oxy.cn/wp-content/uploa

The current road is different, love needs to distinguish between right and wrong 3782

python列表与集合

一.列表类型操作 1.修改列表元素 ls[i]=x #替换列表ls第i项数据为x ls[i:j]=It #用列表it替换列表ls中第i项到j项数据(不含第j项) ls[i:j:k]=It #用列表It替换列表ls中第i项到j项以k为步长的数据(不含第j项) 示例如下: v=[1,2,3,4] v[3]="py" v [1,2,3,"py"] 2.删除列表元素 del ls[i:j] #删除列表ls第i项到j项数据 del ls[i:j;k] #删除列表中ls第i项到j项以k为步长的数据

minghaibuai的博客 2024

3D打印开源硬件MKS Monster8 V2.0 原理图赏析--更新中

MKS MONSTER8 主板是创客基地为满足市场需求而推出的主板,可用于Voron 2.4机器安装,支Marlin 固件和Klipper固件,支持U盘打印(暂时只有Marlin固件支持),支持TMC驱动UART模式,它包含了3D打印机所需要的主要部件和接口,通过MCU集中控制,是一款功能强大的主板。下面详细分析一下。

我的专栏 7226

斐波纳契数列

题目描述: 描述 查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... python代码实现示例: class Solution: """ @param n: an integer @return: an ineger f(n) """ # 方法3需要用到的函数

rs勿忘初心的博客 225

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python斐波那契数列递归算法的时间复杂度推导_斐波那契数列两种算法的时间复杂度...

这是2018王道数据结构考研复习指导的第一章思维拓展的题目。关于斐波那契数列的简介:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从...

weixin_39629352的博客 716

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

LintCode Python 入门级题目 斐波纳契数列

原题描述: 查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。 第i个数是第i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 题目分析: 开始的想法,通过递归实现输出fib(n-1)+fib(n-2)的值计算,原理正确,算法复杂度高,导致运...

weixin_30404405的博客 142

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python开发【算法】:斐波那契数列两种时间复杂度

斐波那契数列 概述:   斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的...

abchhcba2014的博客 472

python斐波那契数列递归算法的时间复杂度推导_Python开发【算法】:斐波那契数列两种时间复杂度...

斐波那契数列概述:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门...

weixin_39976382的博客 466

python斐波那契数列递归算法的时间复杂度推导_python斐波那契数列复杂度

契数列概述:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这...

weixin_39799561的博客 894

lintcode:Fibonacci 斐波纳契数列

题目: 斐波纳契数列 查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。 第i个数是第i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 样例 给定1,返回0 给定2,返回1 给定10,返回34 解题: 好像...

weixin_30596165的博客 194

python斐波那契数列复杂度

契数列 概述:   斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用...

weixin_30614109的博客 168

python斐波那契数列递归算法的时间复杂度推导_Python【算法实例】:斐波那契数列两种时间复杂度...

斐波那契数列概述:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门...

weixin_39550940的博客 262

一日一技:Python标准库中的缓存装饰器

缓存 缓存是一种出色的技术,用于改善各种应用程序的性能,其背后的理念是将好不容易得到的结果存储在临时区域,这种区域被称为缓存区,可以是内存、磁盘或数据库等。 Web应用大量地使用了缓存技术,在Web应用中,常常会发生多位用户同时请求同一个页面的情况,在这种情况下,Web应用可只生成网页一次,并向用户提供已渲染好的页面,而不是在每位用户请求时都重复生成页面,理想情况下,缓存技术还需使用有效的验证机制,以便需要更新网页时重新生成,再将其提供给用户,智能缓存技术让Web应用能够处理更多的用户,同时消耗更少的资

weixin_42000303的博客 1743

算法一---斐波那契数列

这个是Lintcode上的入门题,原本以为一个晚上就能写完的,结果发现从慢到快的算法研究弄了我好几天,最后的矩阵乘法也是网上看到的,毕竟数学荒废好多年了。正好新学了一点点python,虽然算法题对我现在的工作感觉没什么帮助,本着练手python编程和活动脑筋的目的,还是决定每个星期研究个一个来玩玩。

Mosum的博客 568

python中的fib函数_Python中利用函数装饰器实现备忘功能

“备忘”的定义“memoization”(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词“memorandum”(备忘录),意思是“被记住”。虽然它和单词“memorization”在某种程度上有些相似,但它并不是该单词的错误拼写。实际上,Memoisation是一种用于通过计算来加速程序的技术,它通过记住输入量的计算结果,例如函数调用结果,来实现其加速目的。如果遇...

weixin_39849888的博客 705

斐波那契

题目:查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:    前2个数是 0 和 1 。    第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...链接:http://www.lintcode.com/zh-cn/problem/fibonacci/思路:这道题很基础,但是重点是时间复杂度要...

马木木的个人博客 378
上一篇: 20行代码实现2048
下一篇: Python 迷宫算法
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值