まず、モンテカルロ法による円周率の計算手法を説明します。以下の手順に従って、円周率の近似値を求めることができます。
- 正方形の中に半径1の円を描きます。
- 正方形の中に無作為に点をプロットします。
- プロットされた点が円の内側にあるかどうかを判定します。
- 円の内側にある点の数を数えます。
- 円の内側にある点の数と、全体の点の数の比を計算します。
- この比を使って、円の面積と正方形の面積の比を求めます。
- 求めた比を用いて円周率の近似値を計算します。
この手法をPythonコードで実装すると、以下のようになります。
import random
def estimate_pi(num_points):
points_inside_circle = 0
points_total = 0
for _ in range(num_points):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
distance = x 2 + y 2
if distance <= 1:
points_inside_circle += 1
points_total += 1
pi_estimate = 4 * points_inside_circle / points_total
return pi_estimate
num_points = 1000000
pi_approximation = estimate_pi(num_points)
print("Approximation of pi:", pi_approximation)
このコードは、estimate_pi
関数を使ってモンテカルロ法による円周率の近似値を計算し、結果を表示します。num_points
変数を調整することで、計算に使用する点の数を変えることができます。
以上が、Pythonを使ったモンテカルロ法による円周率の計算方法の例です。この手法を使うことで、円周率の近似値を効率的に求めることができます。ぜひ、試してみてください。