Questa è la pagina delle prove personale di dega180

Simulazione problema di Monty Hall

  Lo stesso argomento in dettaglio: 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

Note