定义

斐波那契数列(Fibonacci sequence),又称黄金分割数列、

因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子

(假定每对大兔每月能生产一对小兔,而每对小兔生长两个月就成为大兔,一年后可以繁殖成多少对兔子?)

而引入,故又称为“兔子数列”。

指的是这样一个数列:1、2、3、5、8、13、21、34、……

在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=2, F(n)=F(n-1)+F(n-2)(n>2,n∈N*)

在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,

为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,

用于专门刊载这方面的研究成果。

斐波那契螺旋线.jpg

python代码

废话不说,直接上代码

# -*- coding: utf-8 -*-

def fib(max):

# 默认input是str类型

max = int(max)

n,a,b = 1,0,1

# max:求几个斐波那契数

while(n <= max):

print(b)

# 这一步很关键 f(n) = f(n-1) + f(n-2)

# 1 1 2 3 5 8

t = (b,a+b)

a = t[0]

b = t[1]

n += 1

return 'done'

print('求斐波那契前N个数?请输入N:')

max = input()

fib(max)

赋值语句简化

其中

t = (b,a+b)

a = t[0]

b = t[1]

可以简化为:

a,b = b,a+b

改进后的完整代码为:

# -*- coding: utf-8 -*-

def fib(max):

# 默认input是str类型

max = int(max)

n,a,b = 1,0,1

# max:求几个斐波那契数

while(n <= max):

print(b)

# 这一步很关键 f(n) = f(n-1) + f(n-2)

# 1 1 2 3 5 8

a,b = b,a+b

n += 1

return 'done'

print('求斐波那契前N个数?请输入N:')

max = input()

fib(max)

使用生成器进行改造

上面的函数和generator仅一步之遥。要把fib函数变成generator,只需要把print(b)改为yield b就可以了

# -*- coding: utf-8 -*-

def fib(max):

# 默认input是str类型

max = int(max)

n,a,b = 1,0,1

# max:求几个斐波那契数

while(n <= max):

yield b

# 这一步很关键 f(n) = f(n-1) + f(n-2)

# 1 1 2 3 5 8

a,b = b,a+b

n += 1

return 'done'

print('求斐波那契前N个数?请输入N:')

max = input()

g = fib(max)

print('使用python生成器获取斐波那契前%s个数:' %max)

for n in g:

print(n)

python利用列表计算斐波那契数列前30项_使用python计算斐波那契数列相关推荐

  1. python利用列表计算斐波那契数列前30项并输出_python分享斐波那契数列示例分享 Python 分享斐波那契数列前20项和...

    分享助python大神.斐波那契数列,编写程序,利用列具体内容 拜托拜托有时候,最痛苦的其实不是失去,而是你得到以后其实不快乐. ##缩进格式看图 l=[1,1] for i in range(28) ...

  2. python递归求斐波那契数列前20项_用递归算法实现斐波那契数列1,1,2,3,5,8,13……的前20项,每输出5项一换行,用C++...

    关于 用递归算法实现斐波那契数列1,1,2,3,5,8,13--的前20项,每输出5项一换行,用C++的搜索结果 回答 请参考这篇文章,https://help.aliyun.com/document ...

  3. 斐波那契数列前20项_短线交易的秘诀——斐波那契数列,数学界的“完美”公式!...

    斐波拉契数列一直被认为是大自然中的神奇异数. 它的相邻两项之商趋近黄金分割0.618,与之相关的0.191.0.382和0.500等数字,构成了股市中市场时间和空间计算的重要节点. 金融市场的时间和价 ...

  4. 输出斐波拉契数列前30项,每行5个

    """ 功能:输出斐波拉契数列前30项,每行5个 作者:文雅兰 日期:2021年12月2日 """ #生成斐波拉契数列前30项 fib = ...

  5. fibonacci数列前20项_面试题精选:神奇的斐波那契数列

    斐波那契数列,其最开始的几项是0.1.1.2.3.5.8.13.21.34-- ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义. f0 = 0 f1 = 1 f(n) = f ...

  6. python编写递归函数、求斐波那契数列第n项_用Python实现求Fibonacci数列的第n项

    1. 背景--Fabonacci数列的介绍(摘自百度百科): 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacc ...

  7. python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

    本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...

  8. 斐波拉契数列前100项求和c语言,C++斐波那契数列前100项详细数据

    f⑴=C(0,0)=1. f⑵=C(1,0)=1. f⑶=C(2,0)+C(1,1)=1+1=2. f⑷=C(3,0)+C(2,1)=1+2=3. f⑸=C(4,0)+C(3,1)+C(2,2)=1+ ...

  9. 斐波那契数列前20项_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...

    斐波那契数列,又称兔子数列,或者黄金分割数列.指的是这样一个数列: 0.1.1.2.3.5.8.13.21--从第三项起,它的每一项都等于前两项的和. 为什么是兔子数列?我们假设兔子在出生两个月后,就 ...

最新文章

  1. java中集合的区别_Java中的集合与集合之间的区别
  2. Sql Server之旅——第四站 你必须知道的非聚集索引扫描
  3. Dijkstra算法优先队列实现与Bellman_Ford队列实现的理解
  4. 遗传算法python实现_Python遗传算法代码实例讲解
  5. caffe学习:Crop 层
  6. MySQL入门第三天(下)——存储过程与存储引擎
  7. 集合set中的基数cardinality是什么意思
  8. 迅雷bolt界面引擎
  9. 对DS证据理论的改进如yager、bayes、孙权、murphy的改进处理,及皮尔逊改进处理
  10. ActiveMQ的下载安装与操作示例
  11. Flask留言板Demo
  12. Visual Studio 2019 Community 版离线注册
  13. 【语义分割—SegNet】SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
  14. 怎样理解时间序列的“平稳性”?
  15. 查看pdf文件的目录和添加标签的方法
  16. 魔术轮胎,dugoff轮胎建模 采用模块化建模方法,搭建非线性魔术轮胎PAC2002,dugoff模型
  17. 在bandwagon上架设web服务器
  18. 计算 某一天据今天有多少天
  19. IT外企那点儿事(12):也说跳槽
  20. 前台获取服务器ip地址

热门文章

  1. ARTS Week 32
  2. 单片机中常见英文缩写(51为例)
  3. 流氓软件卸载与避免的一些方法
  4. jgit比较项目不同版本间的差异及统计代码总行数
  5. Java——线程插队_join ()方法来实现“插队功能”
  6. 简述人工神经网络的作用,简述人工神经网络
  7. 卷积神经网络(原理与代码实现)
  8. 2020年厦门市技能大赛-网络搭建与应用竞赛-正式赛卷(一)技能要求(附脚本配置)
  9. 信息资源管理【一】之 信息资源管理基础
  10. 判断scrollView滚动结束