Python實現斐波那契數列

斐波那契數列你們都很熟悉吧,我們在高中學數學的時候,老師會講這個定律以及算法,其實數據結構和數學息息相關,數學思惟好的每每邏輯思惟就比較好,今天小猿圈帶你們學習一下python的斐波那契數列的實現。python

程序分析:斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0、一、一、二、三、五、八、1三、2一、3四、……算法

在數學上,費波那契數列是以遞歸的方法來定義:數據結構

F0 = 0    (n=0)app

F1 = 1    (n=1)ide

Fn = F[n-1]+ F[n-2](n=>2)學習

程序源代碼:idea

方法一:code

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 斐波那契數列

def fib(n):

    a, b = 1, 1

    for i in range(n-1):

        a, b = b, a+b

    return a

# 輸出了第10個斐波那契數列

print fib(10)

方法二:遞歸

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 斐波那契數列

# 使用遞歸

def fib(n):

    if n == 1 or n == 2:

        return 1

    return fib(n - 1) + fib(n - 2)

# 輸出了第10個斐波那契數列

print fib(10)

以上實例輸出了第10個斐波那契數列,結果爲:

55

方法三:ci

若是你須要輸出指定個數的斐波那契數列,能夠使用如下代碼:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 斐波那契數列

def fib(n):

    if n == 1:

        return [1]

    if n == 2:

        return [1, 1]

    fibs = [1, 1]

    for i in range(2, n):

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

    return fibs

# 輸出前10個斐波那契數列

print fib(10)

以上程序運行輸出結果爲:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

你們對斐波那契數列python的實現學會了吧,也是很簡單的,代碼也是優雅的吧,斐波那契數列用到的地方還蠻多的,你們平時能夠多看一下相似於這種算法的結構,讓本身的腦子靈光的轉起來,只要這樣纔能有很好的idea,能夠去小猿圈瞭解更多的算法,你們加油!

相關文章
相關標籤/搜索