開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
Programming Bitcoin: Learn How to Program Bitcoin from Scratch (Jimmy Song(著)、O'Reilly Media)のChapter 2(Elliptic Curves)、Point Addition for When x1≠x2、Exercises 4(36)の解答を求めてみる。
コード
Python 3
#!/usr/bin/env python3 def slope(p1, p2): x1, y1 = p1 x2, y2 = p2 if x1 == x2: raise ValueError() return (y2 - y1) / (x2 - x1) def add(p1, p2): x1, y1 = p1 x2, y2 = p2 s = slope(p1, p2) x3 = s ** 2 - x1 - x2 return (s ** 2 - x1 - x2, s * (x1 - x3) - y1) p1 = (2, 5) p2 = (-1, -1) p3 = add(p1, p2) x3, y3 = p3 for o in [p3, y3 ** 2 == x3 ** 3 + 5 * x3 + 7]: print(o)
入出力結果(cmd(コマンドプロンプト)、Terminal、Jupyter(IPython))
C:\Users\...>py -3 sample4.py (3.0, -7.0) True C:\Users\...>
0 コメント:
コメントを投稿