A. 用python輸出斐波那契數列的前20項,要用遞歸和非遞歸兩種方法
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞歸的方法定義:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
B. python編程,斐波那契數列
婓波那契數列(前兩個數的和是第三個數)
def fib(num):
fibs=[0,1]
#num=input('請輸入婓波那契數列中的數據個數:')
for i in range(int(num)-2):
fibs.append(fibs[-2]+fibs[-1])
print(fibs)
print(fibs[-2])
fib(10)
C. 百科裡面的python實現斐波那契數列
def Fibonacci (stop_number):
a=[1,1]
i=0
while i<stop_number:
a.append(a[-1]+a[-2])
i=i+1
return(a)
D. python 控制台輸出斐波那契數列應該用print還是return
print是列印輸出到控制台
return是函數返回值
它們功能不同,不是2選1的關系。
如果是直接使用循環輸出,那就只需要使用print
E. 用python輸出斐波那契數列的前n項
a, b = 1, 1
print(a)
for i in range(n - 1):
a, b = b, a + b
print(a)
F. (python編程)使用函數輸出斐波那契數列:[-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)要算出來需要兩周
G. 斐波那契數列Python
計算斐波那契數列的核心就是循環進行a,b=b,a+b
如此循環計算,直到b的值大於n,然後輸出a與b即可。
n=int(input('input "n":'))
a, b = 1, 1
while b<=n:
....a, b = b, a+b
print('{} {}'.format(a, b))
H. python做斐波那契數列。
直接創建一個類然後調用下面的def函數即可
#斐波那契數列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)
'''
def get_Fibonacci_sequence(n):
'''輸入n,遍歷到第n位的斐波那契數列'''
a,b=0,1
if n>=3:#即等於>2 相當於1,2位特殊處理
for i in range(n-1):#操作次數是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#這里選擇先改變再輸出,可以減少1次的循環
def get_Fibonacci_Num(n):
'''輸入n,遍歷到第n位的斐波那契數列的第n位數'''
a, b = 0, 1
if n >= 3: # 即等於>2 相當於1,2位特殊處理
for i in range(n - 1): # 操作次數是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 這里選擇先改變再輸出,可以減少1次的循環
return b
def get_Fibonacci_Num_recursion(n):
'''輸入n,遍歷到第n位的斐波那契數列的第n位數,遞歸實現'''
if n==1 or n==2:#特別注意,這里要用邏輯或判斷,不能直接用或判斷,
return 1
else:
return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)
get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))
I. python 列印斐波那契數列前二十項中中既能被三整除又能被五整除的數
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 3,n∈ N*)在現代物理、准晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從 1963 年起出版了以《斐波納契數列季刊》為名的一份數學雜志,用於專門刊載這方面的研究成果。
def fibonacci(n):
"""生成斐波拉數列的元素"""
a, b = 0, 1
for item in range(n + 1):
a, b = b, a + b
return a
fibonacci_list = list()
for i in range(20): # 將前20個保存到列表中
fibonacci_list.append(fibonacci(i))
# ls=[1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765]
for item in fibonacci_list:
if item % 5 == 0 and item % 3 == 0: # 被3和5整除,即余數是0
print(item, end=" ")
J. 求助python大神。斐波那契數列,編寫程序,利用列表計算斐波那契數列前30項,並以列表形式輸出。
##縮進格式看圖
l=[1,1]
for i in range(28):
l.append(l[-2]+l[-1])
print(l)