開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- Python 3.5 (プログラミング言語)
Think Python (Allen B. Downey (著)、 O'Reilly Media)のChapter 7.(Iteration)のExercises 7-3(No. 1686)を取り組んでみる。
Exercises 7-3(No. 1686)
コード(Emacs)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
EPSILON = 10**-15
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
def estimate_pi():
term = 1103
k = 0
x = 0
while term >= EPSILON:
x += term
k += 1
term = (
(factorial(4 * k) * (1103 + 26390 * k)) /
((factorial(k) ** 4) * (396 ** (4 * k)))
)
return 1 / (2 * math.sqrt(2) / 9801 * x)
if __name__ == '__main__':
print('estimate_pi:', estimate_pi())
print('math.pi: ', math.pi)
print(abs(estimate_pi() - math.pi))
入出力結果(Terminal, IPython)
$ ./pi.py estimate_pi: 3.141592653589793 math.pi: 3.141592653589793 0.0 $
0 コメント:
コメントを投稿