找出1 4000000斐波納契數列中的奇數和

2021-08-30 06:03:17 字數 802 閱讀 7236

首先我們知道斐波納契數列是:

1,2,3,5,8,13 ..........

這個數列中的乙個數等於前面兩個數的和, 我們可以用乙個公式表示:

f(n) = f(n-1) + f(n-2)

有了這個概念我們可以很方便的寫出**:

limit = 4000000

a = 0

b = 1

sum = a + b

while a + b <= limit:

c = a + b

a, b = b, c

if c % 2 != 0:

sum += c

print sum

現在我們看看是不是還能提高**的效率

通過觀察我們得到的數列,不難發現,所有的奇數和其實就是偶數的和,如果我們把其中所有的偶數提取出來,我們得到的數列是:

2,8,34,144...

發現規律了沒有? 這個數列我們用公式 f(n) = f(n-1) *4 + f(n-2) 表示

現在修改我們的**:

limit = 4000000

a = 0

b = 2

sum = a + b

while a + b <= limit:

c = a + b * 4

a, b = b, c

sum += c

print sum

由於減少了迴圈次數, 這樣效率應該有了提公升

斐波納契數

斐波納契數 指斐波那契 leonardo fibonacci,約1175 約1240 發現的數。在1202年斐波納契的著作 算盤書 裡記載著兩道有趣的題目。坐落在義大利比薩的斐波那契雕像 第乙個題目 有七個老婦人正去往羅馬。她們每個人都拉著七匹騾子,每匹騾子馱七個袋子,每個袋子裡有七個麵包,每個麵包...

斐波納契數列

f 1 0 f 2 1 f n f n 1 f n 2 斐波納契數列決定審美和諧性 800年前,義大利的數學家李奧納多 斐波那契出版了驚世之作 算盤書 在 算盤書 裡,斐波納契提出了著名的 兔子生兔子的問題 有乙個人把一對兔 子放在四面圍著的地方。假定每個月一對兔子生下另外一對。而這新的一對在二個月...

斐波納契數列

斐波納契數列又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 此本章通過多種方式實現斐波納契數列 第一種 for 迴圈實現 a,b 0,1 for i in ...