目錄python
圓周率的近似計算公式dom
\[ \pi = \sum_{k=0}^\infty[\frac{1}{16^k}(\frac{4}{8k+1}-\frac{2}{8k+4}-\frac{1}{8k+5}-\frac{1}{8k+6})] \]性能
圓周率的近似計算公式spa
\[ \pi = \sum_{k=0}^\infty[\frac{1}{16^k}(\frac{4}{8k+1}-\frac{2}{8k+4}-\frac{1}{8k+5}-\frac{1}{8k+6})] \]code
# CalPiV1.py pi = 0 N = 10 for k in range(N): pi += 1 / pow(16, k) * (4 / (8 * k + 1) - 2 / (8 * k + 4) - 1 / (8 * k + 5) - 1 / (8 * k + 6)) print("圓周率值是: {}".format(pi))
圓周率值是: 3.1333333333333333 圓周率值是: 3.1414224664224664 圓周率值是: 3.1415873903465816 圓周率值是: 3.1415924575674357 圓周率值是: 3.1415926454603365 圓周率值是: 3.141592653228088 圓周率值是: 3.141592653572881 圓周率值是: 3.141592653588973 圓周率值是: 3.1415926535897523 圓周率值是: 3.1415926535897913
# CalPiV2.py from random import random from time import perf_counter DARTS = 1000 * 1000 hits = 0.0 start = perf_counter() for i in range(1, DARTS + 1): x, y = random(), random() dist = pow(x**2 + y**2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits / DARTS) print("圓周率值是: {}".format(pi)) print("運行時間是: {:.5f}s".format(perf_counter() - start))
圓周率值是: 3.141148 運行時間是: 0.77535s