Python中的Fibonacci序列(最高效)[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

有人知道用Python显示Fibonacci序列中前100个数字的最有效方法吗?

这是我目前的代码:

fib1,fib2,fib3= 0,0,1  

while fib3< 100: 
    print(fib3) 
    fib1=fib2 
    fib2=fib3
    fib3=fib1 + fib2
python python-3.x
2个回答
2
投票

理解python和fibonacci序列的工作原理。使用python的generator功能。遵循代码

a = int(input('Give num: '))

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

print(list(fib(a)))

1
投票
from math import sqrt
def F(n):
    return ((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5))

根据Fibonacci公式,这是获得Fibonacci序列的第n个成员的方法。

这个函数不使用循环也不使用递归(递归在Python中很糟糕,它们总是比迭代解决方案慢,因为Python处理递归的方式,请参阅here for more info关于它)

© www.soinside.com 2019 - 2024. All rights reserved.