Skip to content

Instantly share code, notes, and snippets.

@berlotto
Last active July 20, 2020 00:43
Show Gist options
  • Save berlotto/d83ed7e0b2af64d1dbc4d06fb207d962 to your computer and use it in GitHub Desktop.
Save berlotto/d83ed7e0b2af64d1dbc4d06fb207d962 to your computer and use it in GitHub Desktop.
Exibe a porcentagem de sucessos quando troca-se a porta no problema de Monty Hall
# Testando o problema de Monty Hall
# https://pt.wikipedia.org/wiki/Problema_de_Monty_Hall
#
# Nesta simulação, o jogador sempre troca a porta depois que o Monty Hall abre uma
# O resultado sempre fica em torno de 65~67% Execute várias vezes para ver...
#
import random
A='A'
B='B'
C='C'
acertos = 0
erros = 0
for x in range(3000):
portas = {A,B,C}
carro = random.choice(list(portas))
jogador_escolha_1 = random.choice(list(portas))
monty_hal_abre = random.choice(list(portas - {jogador_escolha_1, carro}))
jogador_escolha_2 = random.choice(list(portas - {jogador_escolha_1, monty_hal_abre}))
if jogador_escolha_2 == carro:
print(f"{x} Acertou: \tCarro:{carro}, \tMH:{monty_hal_abre}, \tJogador: escolheu {jogador_escolha_1} trocou para {jogador_escolha_2}")
acertos +=1
else:
print(f"{x} ERROU: \tCarro:{carro}, \tMH:{monty_hal_abre}, \tJogador: escolheu {jogador_escolha_1} trocou para {jogador_escolha_2}")
erros += 1
print(f"{acertos} acertos")
print(f"{erros} erros")
print(f"{(acertos / (erros + acertos)) * 100}%")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment