pythonは再帰的にフィボナッチ数列を実現する
1317 ワード
フィボナッチ数列(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*)という繰返し方法で定義される.
pythonを使用してnの値をどのように求めますか?
印刷結果:
インプリメンテーション印刷の値が1,1,2,3,5,8,13,21,34であれば......どのようにインプリメンテーションすればよいのでしょうか.
実行結果
后ろのこの実现に対して、ただ私の个人の考えで、もっと简単な方法があるべきで、みんなが分かち合うことを歓迎します.
pythonを使用してnの値をどのように求めますか?
def flag(b):
if b < 0:
return " 0 !"
if b == 0:
return 0
if b == 1:
return 1
if b == 2:
return 1
return flag(b-1) + flag(b-2)
print(flag(-1))
print(flag(0))
print(flag(2))
print(flag(3))
print(flag(10))
印刷結果:
0 !
0
1
2
55
インプリメンテーション印刷の値が1,1,2,3,5,8,13,21,34であれば......どのようにインプリメンテーションすればよいのでしょうか.
# 2
resList = [0,1,1]
def flag(n):
# , flag(n-1) + flag(n-2) ,n 1 2, return 1
if n == 1 or n == 2:
return 1
a = flag(n-1) + flag(n-2)
# ,
if(a > resList[-1]):
resList.append(a)
return a
n = 10
# resList , n 2 , flag(),
if n < 0:
print("n 0")
elif n == 0:
print("0")
elif n == 1:
print("0,1")
else:
flag(n)
print(resList)
実行結果
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
后ろのこの実现に対して、ただ私の个人の考えで、もっと简単な方法があるべきで、みんなが分かち合うことを歓迎します.