NOTE: 위에 경우에 대한 수학적 확률은 Inclusion-exclusion principle(포함배제의 원리)에서 n=3 인 케이스로
계산 결과는 입니다.
코드 설명
함수를 통해 몬테카를로 시뮬레이션의 시행과 성공을 정의 정의합니다.
num := 정수를 random으로 , 사이에서 한 개 추출 한 뒤 3 또는 5 또는 6으로 나누어 떨어지면 1 그렇지 않으면 0을 반환 합니다.
set.seed(7)
simdivis <- function() {
num <- sample(1:1000, 1)
if (num%%3==0 || num%%5==0 || num%%6==0) 1 else 0
}
코드 설명
몬테카를로 시뮬레이션의 복제를 정의 합니다.
replicate 함수를 통해 위의 코드에서 정의 된 시행을 백만번 수행 합니다. 그 후 mean 함수를 통해서 백만번 중에서 성공한 횟수의 proportion을 계산 합니다. 계산 결과는 수행을 많이 하면 할 수록(n 값을 크게 잡을 수록) 수학적 확률인 로 근사됩니다.
mean(replicate(1000000, simdivis()))
결과해석
mean(simlist)의 결과가 0.467296로 수학적 확률인 0.467로 소수점 이하 세 째 자리 까지 잘 근사되었음을 확인 할 수 있습니다. 이론적으로는 시행을 무한번으로 한다면 정확히 0.467로 수렴 됩니다.
본 포스팅은 Probability: With Applications and R 2nd Edition by Amy S. Wagaman (Author), Robert P. Dobrow ISBN-13: 978-1119692386 을 참조 하였습니다.
Book link => click here