축하합니다! 인기 있는 몬티 홀 게임 쇼의 최종 라운드에 도달했습니다. 진행자 몬티가 여러분에게 3개의 문 중 하나를 선택할 기회를 줍니다. 이 문들 중 하나 뒤에는 상품(새 차? 하와이 여행? 전자레인지?)이 있고, 나머지 두 개는 비어 있습니다.
여러분이 선택을 한 후, 몬티는 상황을 더 흥미롭게 만들기 위해 선택하지 않은 두 문 중 하나를 엽니다. 당연히 열린 문 뒤에는 아무것도 없습니다. 이제 두 개의 문이 남았고, 그 중 하나 뒤에는 상품이 있습니다.
이제 몬티는 여러분에게 마음을 바꿀 기회를 줍니다. 원래 선택을 고수해야 할까요, 아니면 다른 문을 선택해야 할까요? 아니면 상관없을까요?
처음에는 선택을 바꾸는 것이 당첨 확률을 높이지 않을 것 같지만, 실제로는 그렇지 않습니다!
이 결과는 매우 직관적이지 않습니다. 이 사실을 믿기 어려울 수도 있습니다. 걱정하지 마세요. 이 문제가 처음 제안되었을 때 많은 전문 수학자들도 이를 믿지 못했으니, 여러분은 좋은 동료들과 함께 있는 셈입니다.
이 주장을 검증하는 간단한 방법이 있습니다. 프로그램을 작성해 테스트해 보는 것입니다. 게임을 여러 번 반복하면 누가 더 자주 이기는지 확인할 수 있습니다.
다음은 코드입니다(전체 코드는 playground에서 확인할 수 있습니다). 먼저 상품이 있는 문을 무작위로 선택합니다:
let prizeDoor = random(3)
그리고 플레이어의 선택도 무작위로 정합니다:
let chooseDoor = random(3)
다음으로, 몬티가 비어 있는 문 중 하나를 엽니다. 당연히 플레이어가 선택한 문이나 상품이 있는 문은 선택하지 않습니다.
var openDoor = -1
repeat {
openDoor = random(3)
} while openDoor == prizeDoor || openDoor == chooseDoor
이제 닫힌 문은 두 개뿐이고, 그 중 하나 뒤에는 상품이 있습니다. 플레이어가 마음을 바꿔 다른 문을 선택하면 어떻게 될까요?
var changeMind = -1
repeat {
changeMind = random(3)
} while changeMind == openDoor || changeMind == chooseDoor
이제 어떤 선택이 정답인지 확인합니다:
if chooseDoor == prizeDoor {
winOriginalChoice += 1
}
if changeMind == prizeDoor {
winChangedMind += 1
}
상품이 플레이어가 처음 선택한 문 뒤에 있다면 winOriginalChoice
를 증가시킵니다. 상품이 다른 문 뒤에 있다면 플레이어가 마음을 바꿨을 때 이길 것이므로 winChangedMind
를 증가시킵니다.
이게 전부입니다.
위 코드를 1000번 정도 실행하면, 마음을 바꾸지 않았을 때 상품을 선택할 확률은 약 33%입니다. 하지만 마음을 바꾸면 승리 확률이 67%로 두 배가 됩니다!
여전히 믿기 어렵다면 playground에서 직접 시도해 보세요. ;-)
그 이유는 다음과 같습니다. 처음 선택을 할 때 상품을 선택할 확률은 3분의 1, 즉 33%입니다.
몬티가 문 하나를 열면 새로운 정보를 얻게 됩니다. 하지만 이는 원래 선택의 확률을 바꾸지 않습니다. 그 확률은 여전히 33%입니다. 왜냐하면 이 선택은 열린 문 뒤에 무엇이 있는지 알기 전에 했기 때문입니다.
확률은 항상 100%가 되어야 하므로, 상품이 다른 문 뒤에 있을 확률은 이제 100 - 33 = 67%가 됩니다. 따라서 이상하게 들릴지 모르지만, 문을 바꾸는 것이 더 유리합니다!
이해하기 어려운 개념이지만, 충분히 많은 횟수를 시뮬레이션하면 쉽게 확인할 수 있습니다. 확률은 이상합니다.
그런데 코드를 이렇게 간단히 만들 수도 있습니다:
let prizeDoor = random(3)
let chooseDoor = random(3)
if chooseDoor == prizeDoor {
winOriginalChoice += 1
} else {
winChangedMind += 1
}
이제는 시뮬레이션이 아니지만 논리는 동일합니다. chooseDoor
가 이길 확률이 3분의 1임을 명확히 볼 수 있습니다. 왜냐하면 1에서 3 사이의 무작위 숫자이기 때문입니다. 따라서 마음을 바꾸면 나머지 3분의 2의 확률로 이길 수 있습니다.
Swift Algorithm Club을 위해 Matthijs Hollemans가 작성