python中斐波那契数列的编程方法(python编写斐波那契数列)
用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 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
python斐波那契数列代码怎么写
代码实现斐波那契数列 运行的结果 在Python代码中给num传的值是10,所以会得到10个斐波那契数列的值,
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 :用for循环求斐波那契
①填:in range(3, n + 1):
②填:a, b = b, a + b
完整代码为:
n = int(input('请输入n: '))
a = b = 1
print(1, 1, end = '')
for x in range(3, n + 1):
? print('', a + b, end = '')
? a, b = b, a + b
运行结果为:
如图输出了斐波那契数列的前10项,结果正确,望采纳~
Python实现斐波那契数列的方法以及优化
斐波那契数列 ( 意大利语 :Successione di Fibonacci) 的定义 :
斐波那契数列由0和1开始,之后的每个斐波那契数就是由之前的两数相加而得出。具体数值如下:
0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,..............
特别注意 :F(0)代表的是第一个数值,数列下标由0开始。
代码如上,用了迭代的算法计算每个数值,每个N值最大运行N-1次循环,算法比递归要高效很多。递归代码如下:
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)