Programing/R- programming

몬티홀 딜레마, R 프로그래밍 솔루션

sosal 2021. 9. 14. 16:02
반응형

 

 

Suppose you’re on a game show, and you’re given the choice of three doors. Behind one door is a car, behind the others, goats. You pick a door, say #1, and the host, who knows what’s behind the doors, opens another door, say #3, which has a goat. He says to you, "Do you want to pick door #2?" Is it to your advantage to switch your choice of doors?

당신이 한 게임 쇼에 참여하여 세 문들 중 하나를 고를 기회를 가졌다고 생각해봐라. 한 문 뒤에는 자동차가 있으며, 다른 두 문 뒤에는 염소가 있다. 당신은 1번 문을 고르고, 문 뒤에 무엇이 있는지 아는 사회자는 염소가 있는 3번 문을 연다. 그는 당신에게 "2번 문을 고르고 싶습니까?"라고 묻는다. 당신의 선택을 바꾸는 것은 이득이 되는가?

 

##################

 

처음 문제를 접했을 때 들었을 때는 직관적으로 왜 선택을 바꾸는게 좋은지 이해가 안됐었는데,

R로 이 문제를 시뮬레이션 직접 해봤습니다.

Final = c()

for(i in 1:10000){ # 각 시행, 1만번 수행
    Data = sample( c(1,1,2)) # 염소 = 1, 차 = 2 를 랜덤으로 생성
    selected = sample(1:3, 1) # 첫 선택 (index)
    unselected = (1:3)[-selected] # 선택되지 않은것 (index)
    
    deleted = unselected[which(Data[unselected] == 1)[1]] # 선택되지 않은것 중 하나 삭제
    
    lefted = (1:3)[ c(-selected, -deleted) ] # 삭제되지 않은 것 중 남은것 (index)
    
    #바꾸지 않았을 때, 바꿨을 때
    Final = rbind(Final, c(Data[selected] == 2, Data[lefted] == 2)) 
}

 

# 최종 결과 확인

> colSums(Final)
[1] 3307 6693

 

바꿨을 때의 확률은 66%, 바꾸지 않았을 때의 확률은 33%로,

실제 시뮬레이션 결과도 1:2의 비율로 승리 확률이 갈리네요.. ㅎㅎ

 

재밌네요