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

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

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 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。*

使用递归返回前n项的斐波那契数列:

func_1(n-2)+func_1(n-1)此代码为本节代码的主要代码

def func_1(n):
if n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return func_1(n-2)+func_1(n-1)
假设n取4
return func_1(2)+func_1(3)
func_1(2)带入函数则返回1,func_1(3)带入函数则返回 func_1(3-2)+func_1(3-1)即为 func_1(1)+func_1(2) ,带入函数为1+1 所以得出结论func_1(4) =func_1(2)+func_1(3)=func_1(2)+func_1(1)+func_1(2)=3


刚才的递推函数只能返回第n各值,要想返回前n项值,得在外围建个函数将得出的值一一添加进去

代码实现:
def func(a):
def func_1(n):
if n == 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return func_1(n-2)+func_1(n-1)
list_1 = []
for i in range(a):
list_1.append(func_1(i))
return list_1

print(func(20))
在这里插入图片描述

祝大家Python学习顺利!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148834.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • NOIP2011 提高组合集「建议收藏」

    NOIP2011 提高组合集「建议收藏」NOIP2011提高组合集D1T1铺地毯模拟,题目让你干啥你就干啥#include<iostream>#include<cstdio>usingnamespacestd;intx[100010],y[100010],dx[100010],dy[100010];intmain(){intn;…

  • 数据归一化小结

    数据归一化小结在各种模型训练,特征选择相关的算法中,大量涉及到数据归一化的问题。比如最常见的情况是计算距离,如果不同维度之间的取值范围不一样,比如feature1的取值范围是[100,200],feature2的取值范围是[1,2],如果数据不做归一化处理,会造成feature1在距离计算中占压倒性的优势,feature2完全体现不出来作用。而数据做归一化处理以后,会让各个不同特征对距离计算的贡献大致相同,从而避

  • 个人博客数据库设计

    个人博客数据库设计文章目录前言一、概述及分析1.1项目背景1.2分析1.3系统功能1.3.1用户管理1.3.2博文管理1.3.3评论管理1.3.4分类管理1.3.5标签管理二、数据库概念模型设计—基本ER图三、数据库逻辑模型设计四、数据库语句4.1建立数据表语句(部分)4.2建立视图(部分)五、小结&amp;参考资料小结参考资料前言最近要做数据库大作业,在思考了很久之后,还是设计一个简单…

  • android线程间通信的几种方法_Android线程间通信机制

    android线程间通信的几种方法_Android线程间通信机制讲解Handler机制的博文很多,我也看了很多,但说实话,在我对Handler几乎不怎么了解的情况下,每一篇文章我都没太看懂,看完之后脑子里还是充满了疑问。究其原因,是因为几乎每一篇文章一上来就开始深入Handler源码,使得在一些宏观的问题上还是充满疑问,如果你从来没接触过Handler,对一些基础的问题还充满疑问,那深入源码去探究根源肯定会有些吃力。下面,我就从一个初学者思考的角度,来讲一讲H…

  • 安卓内核编程_内核编程用什么语言

    安卓内核编程_内核编程用什么语言http://blog.csdn.net/Luoshengyang/article/details/6568411Android4.04源码编译(ubuntu12.04)http://www.adaiw.com/?p=167如何下载并编译Android4.0内核源码goldfish(图文)http://blog.csdn.net/flydream

  • CICD – docker私有仓库

    CICD – docker私有仓库1、创建私有仓库dockerpullregistrydockerrun-d-v/opt/registory:/var/lib/registory-p5000:5000–restart=always–nameregistryregistry2、查看私有仓库curlhttp://47.99.211.128:5000/v2/_catalog#域名解析后…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号