Pythonで円周率を表示・計算する方法:How to display and calculate pi in Python
Pythonで円周率を計算する方法
Pythonを使えば、さまざまな方法で円周率(π)を計算することができます。ここでは、以下の手法を紹介します:
- 1. 標準ライブラリを使う
- 2. 数値積分を利用する
- 3. 無限級数を利用する
- 4. モンテカルロ法を使う
1. 標準ライブラリを使う方法
Pythonの標準ライブラリmath
を使えば、簡単に円周率を取得できます。
import math print(math.pi) # 結果:3.141592653589793
math.pi
を使うと高精度なπの値が返されます。
2. 数値積分を利用する方法
数値積分を使って、円周率を近似計算することも可能です。以下は、円の面積からπを求める例です:
import numpy as np # 円の面積を数値積分で計算 n = 1000000 x = np.linspace(0, 1, n) y = np.sqrt(1 - x**2) area = np.sum(y) * (1 / n) * 4 # 円の4分の1を4倍する print(area) # 結果はπに近似
3. 無限級数を利用する方法
無限級数の例として、ライプニッツ級数を使った方法を紹介します:
def leibniz_pi(n_terms): pi_estimate = 0 for k in range(n_terms): pi_estimate += (-1)**k / (2 * k + 1) return pi_estimate * 4 print(leibniz_pi(100000)) # 精度を上げるために項数を増やします
項数を増やすことで、円周率の精度を高めることができます。
4. モンテカルロ法を使う方法
乱数を使って、円周率を近似計算するモンテカルロ法の例です:
import random def monte_carlo_pi(n_points): inside_circle = 0 for _ in range(n_points): x, y = random.random(), random.random() if x**2 + y**2 <= 1: inside_circle += 1 return (inside_circle / n_points) * 4 print(monte_carlo_pi(1000000)) # 精度を上げるために点数を増やします
モンテカルロ法はランダム性に依存するため、結果にはわずかなばらつきがあります。
まとめ
Pythonでは、math
ライブラリを使う方法が最も簡単ですが、数値計算や無限級数、モンテカルロ法を使うことで、円周率の計算をより深く理解することができます。精度や計算速度の要求に応じて適切な方法を選びましょう。