문제 15 · 정 n각형 넓이로 π 근사
문제 15 [4점]
아래 문제를 풀기 위한 몬테-카를로 시뮬레이션Monte-Carlo Simulation 기반 의사알고리즘pseudo-algorithm을 작성하세요. 임의의 정 n각형의 한 변의 길이가
임의의 정수
풀이 및 해설
아이디어. 반지름 1인 원에 내접한 정 n각형은 변의 수
- 정 n각형을
인 정사각형(넓이 4) 안에 놓는다. - 그 정사각형에서 점을 무작위로 많이 던져, 정 n각형 안에 떨어진 비율을 센다.
- 넓이
. 이 크면 이 넓이가 에 수렴한다.
내접 정 n각형은 "중심에서 각 변까지 거리(아포뎀)"가
의사알고리즘 (몬테-카를로)
1. 정수 n을 입력받는다. // 변의 수
2. 표본 개수 N을 정하고(예: 1,000,000), 난수 시드를 고정한다.
3. 아포뎀 apothem ← cos(π / n)
4. count ← 0
5. N번 반복:
a. -1..1 범위의 임의의 실수 px, py를 뽑는다.
b. i = 0..n-1 각 변에 대해:
변의 바깥 방향 각도 β ← (2i+1) · π / n
만약 px·cos(β) + py·sin(β) > apothem 이면
점은 다각형 밖 → 다음 표본으로
c. 모든 변을 통과하면(내부) count ← count + 1
6. area ← 4 · count / N // 정사각형 넓이 = 4
7. area를 π의 근삿값으로 출력한다.n = 180, N = 1,000,000, 시드 고정 시 약 3.14226을 얻습니다.