프로그래밍 퀴즈 – 원주율 구하기

질문

상수로 정의한 원주율 PI 값이 없다고 해보자. 원주율 값을 직접 구해야 한다면 어떻게 접근하겠는가?

해결책: 몬테카를로

몬테카를로 시뮬레이션(Monte CarloSimulation)이란 통계적 접근 방법이 있다.

1.먼저 정사각형 안에 한 꼭지점을 중심으로 사분원을 한 개 그린다.
2.이때 정사각형의 전제 넓이를 1이라고 하면 원의 넓이는 π/4가 된다.
3.이제 컴퓨터로 난수를 발생하여 무작위로 정사각형 내부에 점을 찍는다.
4.그리고 정사각형의 꼭지점과의 거리를 계산하여 점이 사분원의 내부에 있는지 외부에 있는 지를 판단한다.
5.예를 들어 전체 10만개의 점을 찍었다고 할 때 이 중 n 개가 사분원의 내부에 있었다면 두 숫자의 비율, 즉 n/10만의 값은 넓이의 비인 π/4에 근접하리라고 예측할 수 있다.
6.이 값을 더 많은 점을 찍어 실험할수록 정밀해진다.

출처: 몬테카를로 시뮬레이션

해결책: 재훈이의 생각

몬테카를로 방식을 몰라서 다른 접근 방식을 생각한 적이 있다. 기본적인 개념은 간단하다.

  1. 이등변 삼각형을 그린다.
  2. 이등변 삼각형을 모아 원 모양으로 합친다.
  3. 이등변 삼각형의 넓이와 변의 길이를 안다. \’\’\’넓이 = PI * (r^2)\’\’\’ 중에서 PI를 제외한 모든 값이 준비됐다. 식만 풀면 PI의 근사값이 나온다.
  4. 이등변 삼각형이 가늘수록 정확한 값이 나온다.

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu