Python递归学习2 斐波那契数列极其应用

Python编程实例02——实现斐波那契数列 系列目录 上一篇:Python编程实例01——打印九九乘法表 本节目录系列目录前言实现斐波那契数列1、代码分析2、代码实现总结 前言 关键词:斐波那契数列 实现斐波那契数列 1、代码分析 首先,我们先认识斐波那契数列的特点:第1项是0,第2项是1,从第3项开始每个数的值为其前两个数之和,即0,1,1,2,3,5,8… 通过观察,只有第1、2项没有规律,第3项开始都等于前两项之后,假设a代表前两项较小的第一项,b代表前两项中较大的一项,f(n)为第n项对应的值,那么: 当n=0时,f(n)=0 当n= 阅读详情

斐波那契数列

数列说明

斐波那契数列是这样的一组数,第一项和第二项是1,后面的数都是前面俩数的和。
这里和猴子吃桃的问题不太一样,可能从后往前想跟可以得到结果。比如想第10个数,我要是想知道第十个的数我就要知道第九个和第八个的数,想要知道第九个,第八个的数······ ,显然一直在做着重复的过程,递归大法来了

def fibonacci(n):
    """
    实现斐波那契数列
    :param n: 第几项
    :return: 第n项的数值
    """
    if n == 1:
        return 1
    elif n == 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

斐波那契数列的拓展问题

工人上楼梯

问题描述:

工人上台阶问题
一个工人可以一次上一个台阶,也可以一次上两个台阶。问如果他上到第n个阶,有多少种上法。

分析

从前往后分析吧,分析的过程一定要灵活!上第一个台阶的时候有一个上法,上第二个台阶的时候有两个算法,到第三个台阶的时候,我们知道从第二个台阶到第三个台阶,和从第一个台阶到第三个台阶都只有一种方法。所以只要把上到第二个台阶的方法数加上上到第一个台阶的方法数就是上到第三个台阶方法数了!。同理第四个台阶的方法数等于第三个台阶的方法数加上第二个台阶的方法数。递归大法又来了!

def get_step(n):
    """
    上台阶
    :param n: 要上的台阶数
    :return: 方法的总数
    """
    if n == 1:
        return 1
    elif n == 2:
        return 2
    else:
        return get_step(n-1) + get_step(n-2)
python实战训练--基础练习题(2) 文章目录斐波那契数列。递归实现朴素实现列表copy九九乘法表暂停一秒输出给人看的时间 斐波那契数列。 斐波那契数列指的是bai这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368… 这个数列从第3项开始,每一项都等于前两项之和。 程序分析: 斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就 阅读详情

相关推荐

递归实现斐波那契数列以及详细解析

什么是递归:函数内部调用函数自身。 什么是斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89......像这样的数列,第一个数加第二个数等于第三个数,第二个数加第三个数等于第四个数,以这样的规律递推。F(1)=1,F(2)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 3,n∈ N*) 现在我将用Python来写递归实现斐波那契数列。 d...

heibuliuqiu_gk的博客 9649

Fibonacci数列 斐波那契数列

Fibonacci数列 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 样例输入 10 样例输出 55 样例输入 22 样例输出 7704 数据规模与约定 1 <= n <=...

竞仔今天也要努力码一千字 6882

Python斐波那契数列应用讲解

斐波那契数列应用讲解起源代码实现应用:小矩形覆盖大矩形应用1思路分析应用1代码实现应用2思路分析应用2代码实现 起源 斐波那契数列,又称黄金分割数列 / 兔子数列;起源于斐波那契发现的兔子繁殖问题(具体分析过程的链接见文末),网址有点长,但内容很详细,哈哈哈。 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,该数列最大的...

Lgqiann的博客 1820

裴波那契数列python

输出n个长度的裴波那契数列 def fibonacci(n): a, b, c = 0, 1, 0 fibonacc = [] while c < n: a, b = b, a + b print(a, b) fibonacc.append(b) c += 1 return fibonacc

E_chos的博客 4840

Python递归函数详解:从斐波那契数列到阶乘计算

递归是编程中一种通过函数自我调用来分解复杂问题的技术,通常包含基准条件和递归条件。递归在实现阶乘和斐波那契数列等经典问题时简洁直观,但存在栈空间使用大、性能较慢等问题。递归与迭代相比,代码复杂度低但性能较差,且受限于调用栈深度。递归优化技术包括记忆化、迭代转换和尾递归优化。递归在目录遍历、汉诺塔问题和分治算法(如快速排序)中有广泛应用。调试递归时可以使用打印递归深度和pdb调试工具。最佳实践包括明确基准条件、控制递归深度、考虑记忆化等。当递归不适用时,可以考虑显式栈、迭代法、动态规划和生成器等替代方案。

记录学习的过程 1166

斐波那契数列,递归函数

斐波那契数列 F(1) = 1,F(2) = 1, F(3) = F(1) + F(2)… Fn = F(n-2) + F(n-1) 求斐波那契数列第N项,根据网上查来的公式 能力有限,所以算法很低级,目前凑合用吧,打印出第N项数字 n = int(input('>>>')) a = (1 + 5**0.5)/2 b = (1 - 5**0.5)/2 c = (5**0.5)/...

轩轩的成长之路 1971

Python | 递归函数实现斐波那契数列

斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数由之前的两数相加得出

zhengrong9的博客 5万+

如何使用Python计算斐波那契数列

斐波那契数列是一个经典的数学问题,它的定义是:第一个和第二个数都是1,随后的每个数都是前两个数的和。的函数,它接受一个正整数n作为参数,并返回斐波那契数列的第n个数字。对于n等于1和2的情况,我们直接返回1,因为斐波那契数列的前两个数字都是1。,并将前两个数字1和1添加到列表中。最后,我们返回列表中的最后一个数字,即斐波那契数列的第n个数字。需要注意的是,斐波那契数列的计算是一个递归的过程,随着n的增大,计算量会成指数级增长。对于n大于2的情况,我们使用一个循环来计算斐波那契数列的第n个数字。

2301_79366177的博客 292

python中使用递归实现斐波那契数列

python中使用递归实现斐波那契数列 python中使用递归实现斐波那契数列 先来了解一下 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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_54733110的博客 10万+

Python|递归函数之斐波那契数列

欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。欢迎加入团队圈子!与作者面对面!直接点击!上一期小编主要...

算法与编程之美 5429

普通人如何上岸华为OD-面试总结

总共有3道算法题,100分值的两道,200分值的一道,不同的毕业院校和专业,通过机试的分值不一样,最少需要150分通过,提前和hr联系,了解自己需要多少分通过。重中之重:哪怕你是背的题库,也请你一定不要直接抄原来的,最好是变更下方法名,否则会判定你重复率过高,从而失去后面的面试机会(实在是不会做再用此方法,凑分数所用,面试官能看到你的代码,会影响你的面试评价)本人女,所以还问道了婚育计划,有对象这点可以说,没有问题,但是如果可以的话,生孩子的时间,可以给hr说这几年不考虑。如果说没有难题,直接就挂了。

weixin_47767264的博客 5454

Python入门经典题斐波那契数列

Python入门经典题斐波那契数列 斐波那契数列: 以下是前15项斐波那契数列: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 … 这个数列从第3项开始,每一项都等于前两项之和 如果设F(n)为该数列的第n项(n∈N*),那么这句...

王涛涛的博客 9155

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2783

用Python轻松实现斐波那契数列——递归函数详解!

通过本篇文章,我们学习了Python递归函数的基本概念和实现方法,同时也掌握了斐波那契数列的常规和优化算法。如果你对于递归算法的理解更深了,那么对于其他匹配问题、遍历问题及分治问题,都将更加得心应手。

canshanyin的博客 1万+

Arduino IDE 2.3.2 配置 UNO R4 WIFI 开发环境避坑指南(附LED矩阵驱动测试)

本文详细介绍了如何在Arduino IDE 2.3.2中配置UNO R4 WIFI开发环境,并提供了LED矩阵驱动的实战指南。从开发环境搭建到硬件连接,再到LED矩阵的初始化和弹球动画实现,手把手教你避开常见配置陷阱,最终实现流畅的动画效果。特别适合刚接触UNO R4 WIFI的开发者快速上手。

weixin_28675839的博客 220

基于STM32设计的智能水母投喂器(华为云IOT)_170

本项目利用STM32单片机控制各种传感器和水泵等设备,能够自动检测和调整水温和水质等参数,自动换水,自动供氧等等,充分满足了水母的养殖要求和需要。同时,根据水母喜欢的光环境,添加了RGB氛围灯,以及可以手动控制的喂食器等功能,提升了水母养殖的便利性和趣味性。

8808

python使用递归实现斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n&amp;amp;gt;=3,n∈N*) 使...

笑小枫 1万+

基于Simulink的永磁同步电机三闭环(位置/速度/电流)控制仿真

本文详细介绍了基于Simulink的永磁同步电机三闭环控制系统设计与实现方法。系统采用位置环、速度环、电流环的三层嵌套结构,通过坐标变换(Clark/Park)实现解耦控制,达到精密定位目的。文章包含完整的建模步骤:从主电路搭建、三环PID设计到坐标变换与SVPWM调制实现,并提供了核心控制算法的MATLAB代码。通过工业机械臂关节场景验证,系统在阶跃响应(稳态误差0.002°)、正弦跟踪(误差0.008°)和抗扰动性能(恢复时间0.05s)方面表现优异。最后还提出了前馈补偿、扰动观测器等优化方向。该方案适

xiaoheshang_123的博客 280

Python递归算法解决斐波那契数列

** Python递归算法解决斐波那契数列 ** 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368… 这个数列从第3项开始,每一项都等于前两项之和。 递归算法 定义:就是一个函数直接或间接调用自身的一种方法,他...

weixin_43734271的博客 1万+

反爬虫:POST 请求参数中 Sign 的加密机制详解,并设计带 Sign 校验的网站

本文介绍了API请求中sign签名的生成原理及实现方法。sign是通过对请求参数加密生成的一串字符串,用于验证请求合法性,防止参数篡改、重放攻击和伪造请求。其生成步骤包括参数排序、拼接字符串、加盐和哈希加密。文章还演示了如何在FastAPI后端实现带sign验证的新闻网站,包括参数校验、时间戳验证和签名比对等安全措施,有效提升API安全性,增加爬虫逆向难度。

数据知道的博客 4076

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现(完结,附带项目源码)

【制作100个unity游戏之30】使用unity实现一款2d俯视角RPG战斗游戏,主要使用InputSystem+有限状态机+A*寻路实现

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4653

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*) 接下来我们使用Python程序代码 第一种解决方法:迭代 完整代码: a = [1, 1] max = 20 for i in range(2, max): a.append(a[i -

我的博客 2万+

QMK键盘固件开发零基础教程(2025全新重制版)

《QMK键盘固件开发零基础教程(2025全新重制版)》是一套专为键盘爱好者和开发者设计的全面教程,旨在帮助用户从零基础快速掌握最新的QMK固件开发技术。教程基于2025年最新的QMK版本(0.19.8+),解决了旧版教程中的诸多问题,如概念不清、步骤缺失和代码过时等。新版教程提供了详细的图解、完整的项目源码以及从环境配置到高级功能开发的全流程指导。此外,教程还涵盖了2024年QMK生态的重大变革,包括键码系统的重构、编译工具链的更新以及Config文件格式的改变等。付费版教程额外提供独家内容,如新特性解析、

Despacito0o的博客 1121

Python实现斐波那契数列

斐波那契数列是一个数列,其前两个数字通常定义为0和1,后续的每个数字都是前两个数字之和。F(0) = 0F(1) = 1斐波那契数列是一个经典的数学问题,可以通过多种方法在Python中实现。本文详细介绍了递归、迭代、动态规划以及带有缓存的递归方法,以及它们的性能和适用场景。通过理解和掌握这些方法,将能够更好地处理斐波那契数列问题,同时也能够应用这些知识解决其他计算和算法问题。希望本文对大家有所帮助,能够更深入地了解Python编程中的算法和数学问题。

涛哥聊Python 1794

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python斐波那契数列for循环_python 递归\for循环_斐波那契数列

# 递归def myAdd(a, b):c = a + bprint(c)if c > 100:returnreturn myAdd(a + 1, c) #最大递归深度是1000myAdd(2, 3)# 功能同上递归a = 2b = 3for i in range(1000):c = a + bprint(c)a += 1b = cdef myFibo(a, b):c = a + bprint...

weixin_39531229的博客 2991

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Python递归学习1,猴子偷桃问题
下一篇: Python递归学习3 输出九九乘法表
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值