簡介
斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34
題目的起源
列昂那多·斐波那契於2023年研究兔子產崽問題時發現了此數列。設一對大兔子每月生一對小兔子,每對新生兔在出生乙個月後又下崽,假若兔子都不死亡。問:一對兔子一年能繁殖成多少對兔子?
兔子的序列
#第一種方式
>>
>
deffab
(n):
a =1 b =
1 c =
1if n <1:
return-1
while
(n-2
)>0:
c = a + b
a = b
b = c
#另一種表達方式 c, a, b = a+b, b, c
n -=
1return c
>>
>
print
(fab(8)
)21#第二種方式
>>
>
deffab
(n):
a =1 b =
1if n <1:
return-1
while
(n-1
)>0:
a,b = b ,a+b
n -=
1return a
>>
>
print
(fab(8)
)21
>>
>
deffab
(n):
if n <1:
return-1
if n==
1or n==2:
return
1else
:return fab(n-1)
+ fab(n-2)
>>
>
print
(fab(8)
)21
from _collections_abc import iterable
from _collections_abc import iterator
class
fibonacci()
:def
__init__
(self,all_num)
: self.nums = all_num
self.a =
1 self.b =
1 self.i =
0def
__iter__
(self)
:return self
def__next__
(self)
:if self.i < self.nums:
curr = self.a
self.a, self.b = self.b, self.a+self.b
self.i +=
1return curr
else
:raise stopiteration
fab = fibonacci(10)
all_nums =
list()
for n in fab:
print
(all_nums.pop())
all_nums.clear(
)>>
>
55
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 用Python實現斐波那契數列
斐波那契數列 fibonacci sequence 又稱 分割 數列 因 數學家萊昂 納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 最開始我一直不能理解兔子問題怎麼和斐波那契數列聯絡在一起的,然後畫了這個圖之後,就明白了。第一年有一對小兔子,一...
用Python列表實現斐波那契數列
題目 有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內 12個月 能繁殖成多少對?分析 兔子的規律為數列,1,1,2,3,5,8,13,...