Pova ad eseguire i seguenti programmi che vorrebbero simulare il lancio di due dadi equi e rappresentarne via via l'istogramma di distribuzione:

programma 1   programma 2

I programmi, redatti in JavaScript, contengono un ciclo in cui viene ripetuta la simulazione del lancio dei due dadi: nel primo programma l'uscita U è simulata con le istruzioni riportate sotto a sinistra, nel secondo con quelle a destra. In JavaScript la funzione floor calcola la parte intera dell'argomento, mentre random() è il generatore di numeri casuali: genera un numero "reale" a caso con distribuzione uniforme in [0,1).
"Algebricamente" i sottoprogrammi sembrerebbero equivalenti (in quello a destra a X viene assegnato lo stesso termine assegnato a U1 e U2 in quello a sinistra). Spiega le eventuali differenze tra i due programmi.

 U1 = floor(random()*6+1);     |      X = random();
 U2 = floor(random()*6+1);     |      U1 = floor(X*6+1); U2 = floor(X*6+1);
 U = U1+U2                     |      U = U1+U2

Ecco due possibili esiti del primo e del secondo programma:

20000 lanci
2  XXXXX 2.69%
3  XXXXXXXXXXX 5.54%
4  XXXXXXXXXXXXXXXXX 8.55%
5  XXXXXXXXXXXXXXXXXXXXXX 11.14%
6  XXXXXXXXXXXXXXXXXXXXXXXXXXXX 13.99%
7  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16.67%
8  XXXXXXXXXXXXXXXXXXXXXXXXXXXX 14.18%
9  XXXXXXXXXXXXXXXXXXXXXX 10.85%
10 XXXXXXXXXXXXXXXX 8.04%
11 XXXXXXXXXXX 5.69%
12 XXXXX 2.68%

20000 lanci
2  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16.8%
3   0%
4  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 17.02%
5   0%
6  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16.69%
7   0%
8  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16.24%
9   0%
10 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 16.12%
11  0%
12 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 17.14%

La seconda versione equivale a U = (floor(randon()*6+1)*2, in quanto all'esecuzione di ogni ciclo il valore di randon() viene generato una sola volta e assegnato a X, U1 e U2 sono espresse in funzione di X mediante la stessa relazione e, quindi, U1 e U2 rappresentano la stessa variabile casuale. È rappresentata, quindi, una distribuzione uniforme in {2,4,6,8,10,12}.
    Nell'altra versione ad ogni ciclo viene generato due volte il valore di randon(), per cui è come se si considerassero due variabili casuali X1 e X2 con distribuzione uniforme in [0,1) e da queste si ottenessero due distinte variabili casuali con distribuzione uniforme in {1,2,3,4,5,6}.

Per altri commenti: "Calcolo delle probabilità" neGli Oggetti Matematici.

Come usare WolframAlpha:  vedi.