ららぽてすらブログ

ららぽてすら

円周率について紹介します…⭕️

こんにちは〜小学生の頃円周率100桁暗記してたららぽてすらです!

今回は、円周率 (π) を求める方法について楽しく説明していきたいと思います🌟

円周率は円の円周と直径の比であることがわかっていますが、それをどのように計算するのでしょうか?

2つ方法を紹介し、その後に付録でPythonソースコードも示していきます!一緒に楽しく計算しましょう♪🧮

 

【具体例】

(a) アルキメデスの方法

  1. 円に内接する正六角形と外接する正六角形を考えます。
  2. それぞれの正六角形の周長を求めます。
  3. 内接する正六角形の周長を円の直径で割り、外接する正六角形の周長を円の直径で割ります。
  4. これらの値の平均をとると、円周率の近似値が得られます。

(b) モンテカルロ法

  1. 半径1の円を考え、正方形の一辺の長さを2とします。
  2. ランダムに点をプロットし、その点が円の内部にあるかどうかを判断します。
  3. 点が円の内部にある割合を求め、それに4を掛けると、円周率の近似値が得られます。

 

Pythonソースコード

それでは、上記の方法をPythonで実装してみましょう☺️

(a) アルキメデスの方法

 

import math

 

def archimedes_pi_approximation(sides):

    inner_radius = 1

    outer_radius = 1 / math.cos(math.pi / sides)

 

    inner_polygon_perimeter = sides * (2 * inner_radius * math.sin(math.pi / sides))

    outer_polygon_perimeter = sides * (2 * outer_radius * math.tan(math.pi / sides))

 

    lower_bound = inner_polygon_perimeter / (2 * inner_radius)

    upper_bound = outer_polygon_perimeter / (2 * outer_radius)

 

    pi_approximation = (lower_bound + upper_bound) / 2

    return pi_approximation

 

sides = 100000

print("円周率の近似値 (アルキメデス):", archimedes_pi_approximation(sides))

 

(b) モンテカルロ法

 

import random

 

def monte_carlo_pi_approximation(points):

    inside_circle = 0

 

    for _ in range(points):

        x = random.uniform(-1, 1)

        y = random.uniform(-1, 1)

 

        if x ** 2 + y ** 2 <= 1:

            inside_circle += 1

 

    pi_approximation = 4 * (inside_circle / points)

    return pi_approximation

 

points = 1000000

print("円周率の近似値 (モンテカルロ法):", monte_carlo_pi_approximation(points))

 

【まとめ】

円周率を求めるためのPythonソースコードを例にあげてみました♪

アルキメデスの方法では多角形の辺の数を増やすことで、モンテカルロ法では点の数を増やすことで、より精度の高い円周率を得ることができます。ぜひ、このコードを試して、楽しんで円周率を求めてみてください🌟

※コード利用は、自己責任でお願い致します🤲

 

【ヤーマン公式】塗った瞬間、ハリに満ちた目もとへ。抗シワ臨床試験済の目もと専用美容液 (YA-MAN) メディリフト アイセラム

価格:6,160円
(2023/4/9 22:44時点)
感想(5件)

《2000円クーポン配布中》 ヤ−マン アセチノ5Dデザイニングクリーム 35g ボディクリーム 美容クリーム スキンケア アセチノクリーム アセチノ美容クリーム

価格:3,980円
(2023/4/9 22:54時点)
感想(45件)