開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.7 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(データをグラフで可視化する)、2.6(プログラミングチャレンジ)、問題2-5(フィボナッチ数列と黄金比の関係を調べる)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 import matplotlib.pyplot as plt import sys def fibo(n): if n == 1: return [1] series = [1, 1] for i in range(n - 2): series.append(series[i] + series[i + 1]) return series def ratios(nums): return [0] + [nums[i] / nums[i - 1] for i in range(len(nums) - 1)] def draw_graph(x, y): plt.plot(x, y) plt.xlabel('No.') plt.ylabel('Ratio') plt.title('Ratio between consecutive Fibonacci numbers') if __name__ == '__main__': try: n = int(sys.argv[1]) except ValueError as err: print(err) else: nums = fibo(n) draw_graph(range(n), ratios(nums)) plt.savefig(f'sample5_{n}.svg')
入出力結果(Terminal, Jupyter(IPython))
$ ./sample5.py Traceback (most recent call last): File "./sample5.py", line 28, in <module> n = int(sys.argv[1]) IndexError: list index out of range $ ./sample5.py 10 $ ./sample5.py 50 $ ./sample5.py 100 $
0 コメント:
コメントを投稿