Ⅰ 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编写函数计算斐波那契数列的前n项,并将结果存在Fibonacci.txt中,每行5个
defFibonacci(n):
ifn==1:
return1
dic=[-1foriinxrange(n)]
dic[0],dic[1]=1,1
helper(n-1,dic)
linesize=5
file=open('Fibonacci.txt','w')
forloopinrange(len(dic)/linesize):
line=[]
foriinrange(linesize):
line.append(dic[i+linesize*loop])
file.write(" ".join([str(x)forxinline])+" ")
file.close()
defhelper(n,dic):
ifdic[n]<0:
dic[n]=helper(n-1,dic)+helper(n-2,dic)
returndic[n]
Ⅲ python做斐波那契数列。
直接创建一个类然后调用下面的def函数即可
#斐波那契数列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)
'''
def get_Fibonacci_sequence(n):
'''输入n,遍历到第n位的斐波那契数列'''
a,b=0,1
if n>=3:#即等于>2 相当于1,2位特殊处理
for i in range(n-1):#操作次数是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#这里选择先改变再输出,可以减少1次的循环
def get_Fibonacci_Num(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数'''
a, b = 0, 1
if n >= 3: # 即等于>2 相当于1,2位特殊处理
for i in range(n - 1): # 操作次数是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 这里选择先改变再输出,可以减少1次的循环
return b
def get_Fibonacci_Num_recursion(n):
'''输入n,遍历到第n位的斐波那契数列的第n位数,递归实现'''
if n==1 or n==2:#特别注意,这里要用逻辑或判断,不能直接用或判断,
return 1
else:
return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)
get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))
Ⅳ 斐波那契数列用python怎么表示
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
Python 实现斐波那契数列代码如下:
#-*-coding:UTF-8-*-
#Filename:test.py
#authorby:www.runoob.com
#Python斐波那契数列实现
#获取用户输入数据
nterms=int(input("你需要几项?"))
#第一和第二项
n1=0
n2=1
count=2
#判断输入的值是否合法
ifnterms<=0:
print("请输入一个正整数。")
elifnterms==1:
print("斐波那契数列:")
print(n1)
else:
print("斐波那契数列:")
print(n1,",",n2,end=",")
whilecount<nterms:
nth=n1+n2
print(nth,end=",")
#更新值
n1=n2
n2=nth
count+=1
执行以上代码输出结果为:
你需要几项? 10
斐波那契数列:
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 ,