開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(データをグラフで可視化する)、2.6(プログラミングチャレンジ)、問題2-5(フィボナッチ数列と黄金比の関係を調べる)を取り組んでみる。
問題2-5(フィボナッチ数列と黄金比の関係を調べる)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
def fibo(n):
if n == 1:
return [1]
if n == 2:
return [1]
a = 1
b = 1
series = [a, b]
for i in range(n):
c = a + b
series.append(c)
a = b
b = c
return series
def draw_graph(n):
nums = range(n)
series = fibo(n + 1)
ratios = [series[i + 1] / series[i] for i in range(n)]
for ratio in ratios:
print(ratio)
plt.plot(nums, ratios)
plt.axis(xmin=0, xmax=100, ymin=1, ymax=2.2)
# 隣り合うフィボナッチ数のひ
title = 'Ratio between consecutive Fibonacci numbers'
plt.title('Ratio between consecutive Fibonacci numbers')
# 数
plt.xlabel('No.')
# 比
plt.ylabel('Ratio')
plt.savefig(title.replace(' ', '_') + '.png')
plt.show()
if __name__ == '__main__':
n = 100
draw_graph(n)
入出力結果(Terminal, IPython)
$ ./fibonacci.py 1.0 2.0 1.5 1.6666666666666667 1.6 1.625 1.6153846153846154 1.619047619047619 1.6176470588235294 1.6181818181818182 1.6179775280898876 1.6180555555555556 1.6180257510729614 1.6180371352785146 1.618032786885246 1.618034447821682 1.6180338134001253 1.618034055727554 1.6180339631667064 1.6180339985218033 1.618033985017358 1.6180339901755971 1.618033988205325 1.618033988957902 1.6180339886704431 1.6180339887802426 1.618033988738303 1.6180339887543225 1.6180339887482036 1.6180339887505408 1.6180339887496482 1.618033988749989 1.618033988749859 1.6180339887499087 1.6180339887498896 1.618033988749897 1.618033988749894 1.6180339887498951 1.6180339887498947 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 1.618033988749895 $
0 コメント:
コメントを投稿