Utente:Dega180/Sandbox
Questa è la pagina delle prove personale di dega180
Simulazione problema di Monty Hall
import random
numeroVolte=input('quante volte vuoi giocare? \n') #ti chiedo quante volte vuoi ripetere il gioco
cambio=raw_input('vuoi cambiare la porta? y/n \n') #ti chiedo se vuoi giocare cambiando sempre la porta oppure tenendo sempre quella della prima scelta
numeroVittorie=0 #Questa variabile conta quante volte vinci al gioco
#inizio il ciclo che fara' fare il gioco tante volte quanto vale la variabile numeroVolte
for i in range(numeroVolte):
#creo un array di tre valori: il valore 0 vuol dire che c'e' una capra, il valore 1 vuol dire che c'e' una macchina, il valore 2 vuol dire che la porta e' stata aperta
porte=[0,0,0]
#scelgo a caso la porta in cui mettere la macchina
a=random.random()*3
if a<1:
porte[0]=1
elif a<2:
porte[1]=1
else:
porte[2]=1
#ora scelgo a caso la porta in cui penso ci sia la macchina
scelta=random.random()*3
if scelta<1:
scelta=0
elif scelta<2:
scelta=1
else:
scelta=2
#se ho scelto di fare il cambio di porta, viene eseguito il seguente codice che "apre" una porta mettendo 2 al posto di 0 e cambia la mia scelta.
if cambio == 'y':
i=0
fatto=0
#qua metto 2 nella porta diversa da quella che ho scelto e diversa da quella con la macchina
while (i<=2) & (fatto==0):
if (porte[i]==0) & (i!=scelta):
porte[i]=2
fatto=1
i=i+1
i=0
fatto=0
#qua cambio la mia scelta con quella diversa dalla mia precedente e quella diversa da 0
while (i<=2) & (fatto==0):
if (i!=scelta) & (porte[i]!=2):
scelta=i
fatto=1
i=i+1
#se la porta che ho scelto contiene 1 (cioe' la macchina) incremento la variabile numeroVittorie
if porte[scelta]==1:
numeroVittorie=numeroVittorie+1
#stampo il risultato
risultato= "il numero di vittorie e %d" % (numeroVittorie)
print risultato