python利用列表计算斐波那契数列前30项_使用python计算斐波那契数列
定义
斐波那契数列(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计算斐波那契数列相关推荐
- python利用列表计算斐波那契数列前30项并输出_python分享斐波那契数列示例分享 Python 分享斐波那契数列前20项和...
分享助python大神.斐波那契数列,编写程序,利用列具体内容 拜托拜托有时候,最痛苦的其实不是失去,而是你得到以后其实不快乐. ##缩进格式看图 l=[1,1] for i in range(28) ...
- 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 ...
- 斐波那契数列前20项_短线交易的秘诀——斐波那契数列,数学界的“完美”公式!...
斐波拉契数列一直被认为是大自然中的神奇异数. 它的相邻两项之商趋近黄金分割0.618,与之相关的0.191.0.382和0.500等数字,构成了股市中市场时间和空间计算的重要节点. 金融市场的时间和价 ...
- 输出斐波拉契数列前30项,每行5个
""" 功能:输出斐波拉契数列前30项,每行5个 作者:文雅兰 日期:2021年12月2日 """ #生成斐波拉契数列前30项 fib = ...
- fibonacci数列前20项_面试题精选:神奇的斐波那契数列
斐波那契数列,其最开始的几项是0.1.1.2.3.5.8.13.21.34-- ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义. f0 = 0 f1 = 1 f(n) = f ...
- python编写递归函数、求斐波那契数列第n项_用Python实现求Fibonacci数列的第n项
1. 背景--Fabonacci数列的介绍(摘自百度百科): 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacc ...
- python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈
本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...
- 斐波拉契数列前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+ ...
- 斐波那契数列前20项_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...
斐波那契数列,又称兔子数列,或者黄金分割数列.指的是这样一个数列: 0.1.1.2.3.5.8.13.21--从第三项起,它的每一项都等于前两项的和. 为什么是兔子数列?我们假设兔子在出生两个月后,就 ...
最新文章
- java中集合的区别_Java中的集合与集合之间的区别
- Sql Server之旅——第四站 你必须知道的非聚集索引扫描
- Dijkstra算法优先队列实现与Bellman_Ford队列实现的理解
- 遗传算法python实现_Python遗传算法代码实例讲解
- caffe学习:Crop 层
- MySQL入门第三天(下)——存储过程与存储引擎
- 集合set中的基数cardinality是什么意思
- 迅雷bolt界面引擎
- 对DS证据理论的改进如yager、bayes、孙权、murphy的改进处理,及皮尔逊改进处理
- ActiveMQ的下载安装与操作示例
- Flask留言板Demo
- Visual Studio 2019 Community 版离线注册
- 【语义分割—SegNet】SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
- 怎样理解时间序列的“平稳性”?
- 查看pdf文件的目录和添加标签的方法
- 魔术轮胎,dugoff轮胎建模 采用模块化建模方法,搭建非线性魔术轮胎PAC2002,dugoff模型
- 在bandwagon上架设web服务器
- 计算 某一天据今天有多少天
- IT外企那点儿事(12):也说跳槽
- 前台获取服务器ip地址