前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python第二十三课:递归斐波那契

Python第二十三课:递归斐波那契

作者头像
红芽
发布于 2020-08-18 17:42:30
发布于 2020-08-18 17:42:30
66000
代码可运行
举报
文章被收录于专栏:红芽技术红芽技术
运行总次数:0
代码可运行

斐波那契(fibonacci) 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

斐波那契(fibonacci)应用 蒙拉丽莎的微笑

Python第二十三课:递归斐波那契

斐波那契(fibonacci)数列代码实例 Python第二十三课:递归斐波那契

假设兔子在2个月之后就有了繁殖能力,每个月可以产下一对兔子,如果不考虑死亡的售后,一年后他们总共有多少对兔子。

迭代 def tuzidd(n):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
n1 = 1 #第一个月是1
n2 = 1 #第二个月还是1
n3 = 1 #第三个月默认是一
if n < 1:
    print('输入有误')
    return -1
while (n-2)>0:
    n3 = n2 + n1
    print(n3,n2,n1)
    #2 1 1
    #3 2 1
    #5 3 2
    #5
    n1 = n2
    n2 = n3
    n -= 1
return n3

print(tuzidd(5)) 其实一开始是不理解的,后面在代码中布置了print,来判断每一次的结果,后面就看得比较明显了。右边赋值给左边

递归

递归计算20个月的兔子数量

def tuzi(n):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if n==1 or n ==2:
    return 1
elif n >2:
    return tuzi(n -2) + tuzi(n -1)

print(tuzi(12)) 分治算法 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python学习笔记1——斐波那契数列
这是一个高中同学问我的问题,本来是用C来写的,正好正在学Python,就用Python重写了一遍当作练习。 下面是题目要求: 一道很简单的题目,但有些细节还是要注意的,我第一次写的代码在细节上就不是很完美。 首先来看看什么是Fibonacci数列。 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
企鹅号小编
2018/01/23
1.3K0
Python学习笔记1——斐波那契数列
斐波那契数列 -- C/C++ 实现
斐波那契数列有一个规律,斐波那契数列的前一项加上它的后一项等于下一项。因此,使用递推的算法可以很容易实现,即F(n)=F(n - 1)+F(n - 2)。
Skykguj
2022/09/09
5830
我用 Python 面向对象做算法题,她说要先给兔子找上对象
休假回来发现自己在刷题小组进度滞后,昨晚想着刷几道题赶赶进度,其中有一道还挺有意思:
TTTEED
2020/07/09
4670
浅谈什么是递归算法
程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。一个方法或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。   例如求和问题:若要求解S100 = 1 + 2 + 3 + 4 + …. + 100的值,通过循环的方式代码如下:
五分钟学算法
2019/05/10
1K0
递归算法/斐波那契数列
递归(Recursion)是一种编程技术,其中函数或方法直接或间接地调用自身。递归通常用于解决可以分解为更小、更简单的子问题的问题。递归的基本思想是将大问题分解为小问题,然后解决小问题,最后通过组合小问题的解来得到大问题的解。
一百减一是零
2024/07/24
1250
递归算法/斐波那契数列
优化函数递归
递归是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。使用递归解决问题,思路清晰,代码少。但是在 Python 中,使用递归会消耗很大的空间,可能还会产生大量的重复的计算。所以我们应该想办法消除递归,下面我以斐波那契序列为例讲解几种消除递归的方法。
不可言诉的深渊
2019/08/13
1.1K0
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
学习方法后,我们来学习一种特殊调用方法的方式,即递归。本篇文章将介绍什么是递归,以及递归的使用规则和注意事项,最后通过几道经典的题目来加深对递归的理解。
用户10517932
2023/10/07
2110
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
使用Java打印斐波那契数列的三种方法
性能类型:https://blog.csdn.net/acecandy/article/details/83864763
阮键
2020/06/18
2.1K0
数据结构与算法-斐波那契数列
简介 斐波那契数列(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>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契
cwl_java
2019/10/26
6160
动态规划的楼层算法
简单说,就是斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
sunsky
2020/08/20
4810
动态规划的楼层算法
C++实现斐波那契数列
斐波那契数列(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>=2,n∈N*)
week
2018/08/24
3220
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)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。*
全栈程序员站长
2022/07/04
8100
python中使用递归实现斐波那契数列
Python如何实现斐波那契数列?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
3730
用js实现斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 斐波那契数列指的是这样一个数列:
程序媛夏天
2024/03/15
880
剑指Offer(六)--斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39
秦怀杂货店
2022/02/15
1680
剑指Offer(六)--斐波那契数列
Python基础面试,看这篇文章画重点吧
一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字。
py3study
2020/01/15
4440
斐波那契数列的四种实现
孔乙己自己知道不能和他们谈天,便只好向 Intern 说话。有一回对我说道,“你写过代码么?”我略略点一点头。他说,“写过代码,……我便考你一考。斐波那契数列的输出,怎样实现?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些代码应该记着。将来做 Leader 的时候,开发项目要用。”我暗想我和 Leader 的等级还很远呢,而且我们 Leader 也从不在项目里写斐波那契;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是递归么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着键盘,点头说,“对呀对呀!……斐波那契有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚在命令行打开 Vim,想在里面写代码,见我毫不热心,便又叹一口气,显出极惋惜的样子。
Crossin先生
2020/02/21
7170
用递归法计算斐波那契数列的第n项
斐波纳契数列(FibonacciSequence)又称黄金分割数列,指的是这样一个数列:1、1、2C/C++
Java架构师必看
2021/03/22
9330
初识JAVA:斐波拉契数列解法
13世纪初,意大利数学家 斐波拉契(Fibonacci) 在所著的《算盘书》中提出“兔子生崽”的趣题:
葆宁
2022/01/06
1990
学习笔记-小甲鱼Python3学习第二十
----------------------------分割线,哈哈哈----------------------------------
py3study
2020/01/03
3870
相关推荐
Python学习笔记1——斐波那契数列
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文