Quando estudamos estatística é muito comum esbarrarmos no problema de Monty Hall. Monty Hall era um programa de TV onde o apresentador oferecia três portas para uma pessoa, atrás de uma delas havia um prêmio e das outras duas alguma coisa desagradável para dar o tom de humor do programa. Aqui no Brasil tinhamos o nosso equivalente apresentado pelo Sérgio Malandra, a Porta dos Desesperados. Aqui temos uma explicação do problema com sua solução:
Apesar da explicação do vídeo e de todas as outras que eu já vi, ainda pode ser um problema muito difícil de abstrair, então para testar a hipótese eu criei um script em R (linguagem de análise estatística que eu estudava na época) para simular o problema conforme as condições acima e realmente os resultados bateram, quando o candidato muda a porta na chance que o apresentador dá as chances de acerto sobem para 2/3. O script está abaixo:
tentativas <- 100000
acertos_sem_troca <- 0
#INDICA QUE APESAR DO APRESENTADOR ABRIR UMA PORTA, ELA NAO TROCA
troca = FALSE
for(i in 1:tentativas) {
portas <- c(1,2,3)
porta_premiada <- sample(portas, 1, replace = FALSE)
porta_escolhida <- sample(portas, 1, replace = FALSE)
#O apresentador escolhe a porta sem premio e nao escolhida para abrir!
portas_sem_premio <- portas[portas != porta_premiada]
portas_spremio_nescolhida <- portas_sem_premio[portas_sem_premio != porta_escolhida]
#Abrindo a Porta (removendo das possiblidades a porta que nao foi escolhida e nao eh a premiada)
portas <- portas[!portas %in% portas_spremio_nescolhida]
if(troca) {
#Trocando porta escolhida pela outra porta
porta_escolhida <- portas[1]
}
if(porta_escolhida == porta_premiada) {
acertos_sem_troca = acertos_sem_troca + 1
}
}
acertos_com_troca <- 0
#INDICA QUE SERA TROCADO
troca = TRUE
for(i in 1:tentativas) {
portas <- c(1,2,3)
porta_premiada <- sample(portas, 1, replace = FALSE)
porta_escolhida <- sample(portas, 1, replace = FALSE)
#O apresentador escolhe a porta sem premio e nao escolhida para abrir!
portas_sem_premio <- portas[portas != porta_premiada]
portas_spremio_nescolhida <- portas_sem_premio[portas_sem_premio != porta_escolhida]
#Abrindo a Porta (removendo das possiblidades a porta que nao foi escolhida e nao eh a premiada)
portas <- portas[!portas %in% portas_spremio_nescolhida]
if(troca) {
#Trocando porta escolhida pela outra porta
porta_escolhida <- portas[1]
}
if(porta_escolhida == porta_premiada) {
acertos_com_troca = acertos_com_troca + 1
}
}