Oppure

Loading
29/05/12 23:45
Gabry
Volevo provare a simulare il problema di Mèrè x86.altervista.org/pascal-de-mere-e-i-dadi/
Volevo calcolare le probabilità di 2 eventi:
- lanciando 4 volte un dado esce 6 almeno una volta
- lanciando 24 volte una coppia di dadi esce almeno una coppia di 6
Nel primo caso la probabilità è di circa il 51%, nel secondo del 49%.

In pratica l'algoritmo per il caso 1 è questo:

p1 <-0
per i<-1 to numero_di_lanci
    A = array di 4 numeri interi casuali compresi tra 1 e 6
    se 6 in A allora  p1 <- p1+1
risultato = pi/numero_di_lanci


Il risultato combacia con la prob teorica
Per il secondo caso invece

p2 <- 0
per i<-1 to numero_di_lanci
    A = array di 24 coppie di int casuali compresi tra 1 6 
    // Cioè una cosa del tipo [[1,1],[2,4],[1,9]...]
    per ogni coppia in A
        se coppia[1]=6 e coppia[2]=6 allora p2 <- p2+1
risultato = p2/numero_di_lanci


In questo caso però ottengo una prob di circa il 66%. Dov'è l'errore?
ringrazio anticipatamente

aaa
01/06/12 7:33
Qwertj
secondo me sarebbe così
p2 <- 0
per i<-1 to numero_di_lanci
    A = array di 24 coppie di int casuali compresi tra 1 6
    // Cioè una cosa del tipo [[1,1],[2,4],[1,9]...]
per ogni coppia in A
    se (coppia[0] + coppia[1]) = 6 allora p2 <- p2+1
risultato = p2/numero_di_lanci
aaa
17/06/12 21:10
Gabry
Ho risolto. Il fatto è che il programma "contava" le coppie di 6, mentre in teoria avrebbe dovuto solo verificare che ce ne fossero o no. In pratica basta aggiungere un semplice break
p2 <- 0
per i<-1 to numero_di_lanci
    A = array di 24 coppie di int casuali compresi tra 1 6
    // Cioè una cosa del tipo [[1,1],[2,4],[1,9]...]
    per ogni coppia in A
        se coppia[1]=6 e coppia[2]=6 allora 
          p2 <- p2+1
          break
risultato = p2/numero_di_lanci
aaa