python解決「斐波那契數列」問題

2021-07-27 16:17:32 字數 1271 閱讀 9766

斐波那契數列(fibonacci sequence),又稱**分割數列、因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:f(0)=1,f(1)=1, f(n)=f(n-1)+f(n-2)(n>=2,n∈n*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從1963起出版了以《斐波納契數列季刊》為名的乙份數學雜誌,用於專門刊載這方面的研究成果。

#!/usr/bin/python

#coding=utf-8

# __author__ = 'cy'

#匯入time包,之後的sleep()函式位於其中

import time

deffibs

(num):

#用於儲存生成的例項序列

result = [0, 1]

#用於生成0到num-2-1的數字

for i in range(num-2):

#迴圈數值加入到result列表

return result

defmain

():#用引數nums 呼叫fibs()函式,生成nums個斐波那契數字

nums=int(input('how many fibs do you want:'))

result = fibs(nums)

#用open()函式開啟檔案,第乙個引數為被開啟的檔名,第二個引數是開啟方式

fobj = open('/data/moxiaokai/helloworld/cytest/blogcode/result.txt', 'w+')

#enumerate()將陣列或列表組成乙個索引序列,返回值包含兩個變數,第乙個是序列,第二個是值

for i, num in enumerate(result):

print

u"第 %d 個數是: %d" %(i, num)

#寫入格式,『\n』用作換行

fobj.write("第%d個數是: %d\n" %(i, num))

time.sleep(1)

if __name__ == '__main__':

main()

執行結果如下:

python 解決斐波那契數列

斐波那契數列 以澳大利亞兔子繁殖的問題而引入的數列,也稱為 兔子數列 斐波那契的具體表現形式是 1,1,2,3,5,8,13,21.其通項公式為 f n f n 1 f n 2 從其通項公式來看,有點類似於python中的遞迴函式,先試著使用遞迴函式解決斐波那契數列 def fibo sequnec...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

python 斐波那契數列

用python寫斐波那契數列當然大家都寫的出來。當時如果用一行 寫呢。本來沒有打算用一行 寫的。後來看到有用一行 寫階乘的。reduce lambda x,y x y,i for i in range 1,n 1 當然在這之前需要 from functools import 好吧,如果你願意,就算兩...