フィボナッチ数列とpythonの多様な実現
1679 ワード
フィボナッチ数列
フィボナッチ数列は0と1から始まり,その後のフィボナッチ係数は前の2数を加算して得られる.特に、0は最初の項目ではなく、ゼロの項目です.
python実装の最初のバージョンでは、初期値を入力し、特定の項目数のフィボナッチ数列 を印刷します.
出力結果:
ここの読者はおかしいと思うかもしれませんが、パラメータは9ではありませんか.どうして10項目ありますか.前述したように、0は第1項ではなく、第0項である.第2のバージョンでは、特定の項目数のフィボナッチ数列 を印刷します.
出力結果:第3版、特定項目の値 を印刷
出力結果:
読んでくれてありがとう!文章に誤りや誤解がある場合は、ご指導をお願いします.科学技術は両刃の剣であり、世界を終結させ、世界をより美しくすることができる.The End.
フィボナッチ数列は0と1から始まり,その後のフィボナッチ係数は前の2数を加算して得られる.特に、0は最初の項目ではなく、ゼロの項目です.
python実装
def fibonacci(a, b, num):
if num == 0:
return str(a) + " "
if num == 1:
return str(a) + " " + str(b) + " "
if num % 2 == 1:
return str(a) + " " + fibonacci(b, a+b, num-1)
if num % 2 == 0:
return str(a) + " " + str(b) + " " + fibonacci(b+a, a+b+b, num-2)
if __name__ == '__main__':
print fibonacci(0, 1, 9)
出力結果:
0 1 1 2 3 5 8 13 21 34
ここの読者はおかしいと思うかもしれませんが、パラメータは9ではありませんか.どうして10項目ありますか.前述したように、0は第1項ではなく、第0項である.
def fibonacci_v2(num):
a, b = 0, 1
if num == a:
print a,
elif num == b:
print a, b,
count = 0
while num > count:
print a, b,
a, b = a+b, a+b+b
count += 2
if num % 2 == 0:
print a
if __name__ == '__main__':
fibonacci_v1(10)
出力結果:
0 1 1 2 3 5 8 13 21 34 55
def fibonacci_v3(num):
if num == 0:
return 0
if num == 1:
return 1
return fibonacci_v2(num-1) + fibonacci_v2(num-2)
if __name__ == '__main__':
print fibonacci_v2(7)
出力結果:
13
読んでくれてありがとう!文章に誤りや誤解がある場合は、ご指導をお願いします.科学技術は両刃の剣であり、世界を終結させ、世界をより美しくすることができる.The End.