python斐波拉函數(shù) python斐波拉契函數(shù)

用python編寫函數(shù)計算斐波那契數(shù)列的前n項,并將結(jié)果存在Fibonacci.txt中,每行5個

def?Fibonacci(n):

富源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

if?n?==?1:

return?1

dic?=?[-1?for?i?in?xrange(n)]

dic[0],?dic[1]?=?1,?1

helper(n-1,?dic)

linesize?=?5

file=open('Fibonacci.txt',?'w')

for?loop?in?range(len(dic)/linesize):

line?=?[]

for?i?in?range(linesize):

line.append(dic[i?+?linesize?*?loop])

file.write("\t".join([str(x)?for?x?in?line])?+?"\n")

file.close()

def?helper(n,?dic):

if?dic[n]??0:

dic[n]?=?helper(n-1,?dic)+helper(n-2,?dic)

return?dic[n]

(python編程)使用函數(shù)輸出斐波那契數(shù)列:[-1, -1, -2, -3, -5, -8, -13, -21, -34, -55](添加到列表)?

你看看你遞歸代碼的復雜度 是O(2^n) 而第二個的復雜度是O(n) 運行效率當然不同COUNTER = 0

def fibn(n):

global COUNTER

COUNTER += 1

if n == 0:

return 1

elif n == 1:

return 1

else:

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

statistics = []

for i in range(35):

COUNTER = 0

fibn(i + 1)

statistics.append(((i + 1), COUNTER))

print statistics[(1, 1), (2, 3), (3, 5), (4, 9), (5, 15), (6, 25), (7, 41), (8, 67), (9, 109), (10, 177), (11, 287), (12, 465), (13, 753), (14, 1219), (15, 1973), (16, 3193), (17, 5167), (18, 8361), (19, 13529), (20, 21891), (21, 35421), (22, 57313), (23, 92735), (24, 150049), (25, 242785), (26, 392835), (27, 635621), (28, 1028457), (29, 1664079), (30, 2692537), (31, 4356617), (32, 7049155), (33, 11405773), (34, 18454929), (35, 29860703)]做了一個簡單的proflieimport cProfile

import pstats

def fibn(n):

if n == 0:

return 1

elif n == 1:

return 1

else:

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

print ' i, calls, time'

for i in range(50):

pr = cProfile.Profile()

pr.enable()

fibn(i)

pr.disable()

stats = pstats.Stats(pr)

stats.strip_dirs()

st = stats.stats[('test1.py', 3, 'fibn')]

print '%3d, %10d, %8f' % (i, st[1], st[3])

i, calls, time 0, 1, 0.000000 1, 1, 0.000001 2, 3, 0.000003 3, 5, 0.000005 4, 9, 0.000008 5, 15, 0.000012 6, 25, 0.000020 7, 41, 0.000033 8, 67, 0.000165 9, 109, 0.000088 10, 177, 0.000141 11, 287, 0.000228 12, 465, 0.000450 13, 753, 0.000601 14, 1219, 0.001016 15, 1973, 0.003561 16, 3193, 0.002593 17, 5167, 0.004372 18, 8361, 0.007097 19, 13529, 0.011073 20, 21891, 0.018552 21, 35421, 0.032467 22, 57313, 0.051762 23, 92735, 0.095383 24, 150049, 0.133490 25, 242785, 0.212390 26, 392835, 0.352861 27, 635621, 0.578204 28, 1028457, 0.987839 29, 1664079, 1.506812 30, 2692537, 2.682802 31, 4356617, 3.998936 32, 7049155, 8.089419 33, 11405773, 13.058235 34, 18454929, 23.930004 35, 29860703, 36.503880目測fibn(50)要算出來需要兩周

用python函數(shù)寫斐波那契數(shù)列是什么?

斐波那契數(shù)列指的是這樣一個數(shù)列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項是0,第1項是第一個1。從第三項開始,每一項都等于前兩項之和。

# 判斷輸入的值是否合法

if nterms = 0:

print("請輸入一個正整數(shù)。")

elif nterms == 1:

print("斐波那契數(shù)列:")

print(n1)

else:

print("斐波那契數(shù)列:")

print(n1,",",n2,end=" , ")

while count nterms:

nth = n1 + n2

print(nth,end=" , ")

# 更新值

n1 = n2

n2 = nth

count += 1

平方與前后項

從第二項開始(構(gòu)成一個新數(shù)列,第一項為1,第二項為2,……),每個偶數(shù)項的平方都比前后兩項之積多1,每個奇數(shù)項的平方都比前后兩項之積少1。如:第二項 1 的平方比它的前一項 1 和它的后一項 2 的積 2 少 1,第三項 2 的平方比它的前一項 1 和它的后一項 3 的積 3 多 1。

本文標題:python斐波拉函數(shù) python斐波拉契函數(shù)
URL鏈接:http://muchs.cn/article10/doeisdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站導航、網(wǎng)站營銷靜態(tài)網(wǎng)站虛擬主機、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)