비버놀로지

[나이브 베이즈 분류] 확률로 pi 계산하기 본문

인공지능 머신러닝

[나이브 베이즈 분류] 확률로 pi 계산하기

KUNDUZ 2022. 11. 3. 09:16
728x90

확률로 pi 계산하기

π, 즉 원주율은 수학에서 가장 중요한 숫자 중 하나입니다. 원주율은 원 둘레와 지름의 비율로 3.141592653.14159265… 입니다.

2차원 평면에 점을 무작위로 찍어서 원주율을 구해보겠습니다. 원리는 원의 넓이를 구하는 것입니다.

반지름이 1인 원이 있다고 가정해보겠습니다. 이 원은 높이, 너비가 2인 사각형에 들어갑니다. 이 때 원의 넓이는 다음과 같이 구할 수 있습니다.

즉, 반지름이 1인 원의 넓이는 π 입니다.

우리가 무작위로 찍은 점 중 몇 %가 원 안에 들어가 있을지를 알게 된다면, 그 원의 넓이를 추측해 낼 수 있습니다. 예로, 75%의 점이 원 안에 있다면 그 원의 넓이는 0.75×4=3.0이 됩니다. 원의 넓이가 π 라고 했으므로, π\  3.0이라고 추측할 수 있습니다.

 

실습

  1. 스켈레톤 코드를 살펴보세요.
  2. N을 10배씩 증가시키며 실행 버튼을 눌러 파이 값이 어떻게 변경되는지 확인해보세요.
import matplotlib as mpl
mpl.use("Agg")
import matplotlib.pyplot as plt
import numpy as np

import elice_utils

def main():
    plt.figure(figsize=(5,5))
    
    X = []
    Y = []
    
    # N을 10배씩 증가할 때 파이 값이 어떻게 변경되는지 확인해보세요.
    N = 1000
    
    for i in range(N):
        X.append(np.random.rand() * 2 - 1)
        Y.append(np.random.rand() * 2 - 1)
    X = np.array(X)
    Y = np.array(Y)
    distance_from_zero = np.sqrt(X * X + Y * Y)
    is_inside_circle = distance_from_zero <= 1
    
    print("Estimated pi = %f" % (np.average(is_inside_circle) * 4))
    
    plt.scatter(X, Y, c=is_inside_circle)
    plt.savefig('circle.png')
    elice_utils.send_image('circle.png')

if __name__ == "__main__":
    main()

 

 

 

728x90
Comments