python中斐波那契数列的编程方法(如何用python做斐波那契数列)

http://www.itjxue.com  2023-03-21 16:20  来源:未知  点击次数: 

python斐波那契数列代码怎么写

如下所示。

数学中有个著名的斐波那契数列(Fibonaccisequence),又称黄金分割数列,数学家列昂纳多·斐波那契(LeonardodaFibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,这个数列中第一个数为0,第二个数为1,其后的每一个数都可由前两个数相加得到,如下所示:

0,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*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,在本文中我们通过Python来实现这个神奇的斐波那契数列。

Python实现斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n=39

????????见到题目很自然联想到用递归或是用数组将前面的结果全部存储起来(这个想法其实和递归没区别),写起来最简单。但实际写出来发现不现实,运行效率太低,提交答案的时候果然提示超出要求时间,程序太过复杂。查阅答案的时候才发现一个很巧妙的方法(主要还是自己太笨了脑筋不会拐弯=.=||),其实F(n)=F(n-1)+F(n-2),也就是说整个运算过程其实只用保存两个数值即可计算出所需结果,并不需要保存前面的全部结果。2个数值,就应该联想到通过模2来存取数值(写到这里愈发觉得自己是个猪头),这样大大提高了效率,降低了存储空间。

? ? ? ? 其次是在实现过程中要注意一个小问题,最开始本猪写的是 for i in range(2,n) ,后来发现答案全错了,原来是因为n=2时, range(2,2) 为0,并不会运算下面的值,所以需要多算一位。

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

class Solution:

? ? def __init__(self):

? ? ? ? self.temp_Array = [0,1]

? ? def Fibonacci(self, n):

? ? ? ? if type(n) != int or n = 0:

? ? ? ? ? ? return False

? ? ? ? elif n == 1:

? ? ? ? ? ? return 1

? ? ? ? else:

? ? ? ? ? ? for i in range(2,n+1):

? ? ? ? ? ? ? ? self.temp_Array[i%2] = self.temp_Array[0]+self.temp_Array[1]

? ? ? ? ? ? return self.temp_Array[n%2]

python编程,斐波那契数列?

婓波那契数列(前两个数的和是第三个数)

def fib(num):

fibs=[0,1]

#num=input('请输入婓波那契数列中的数据个数:')

for i in range(int(num)-2):

fibs.append(fibs[-2]+fibs[-1])

print(fibs)

print(fibs[-2])

fib(10)

用python怎么写斐波那契数列?

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

def fib(num):

fibs=[0,1]

#num=input('请输入婓波那契数列中的数据个数:')

for i in range(int(num)-2):

fibs.append(fibs[-2]+fibs[-1])

print(fibs)

print(fibs[-2])

fib(10)

在数学上

斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,?F(n)=F(n - 1)+F(n - 2)(n?≥ 2,n?∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

(责任编辑:IT教学网)

更多