Universita' di Bologna Simulazione di Reti di telecomunicazioni
Home DEISNet     

Random Graphics

Questa applet mette in evidenza la correlazione che si può manifestare nei generatori di numeri random, in particolare se il generatore è di tipo lineare congruenziale.

Il programma genera numeri casuali appartenenti all'intervallo [0,1[; i numeri ottenuti vengono presi a coppie e rappresentati in un riferimento cartesiano x,y.
Per ottenere istanze di numeri casuali si può scegliere una della routine standard ran1, ran2 o ran3 (Numerical Recipes in C - second edition), il generatore Mersenne Twister, oppure si può definire da input i coefficienti di un generatore lineare congruenziale. Si ricorda che il significato dei coefficienti è il seguente:

Zi+1=(a*Zi +c) mod m

Per ottenere numeri appartenenti a [0,1[ si dividono le Zi per il termine m.

Applet

Note

Per utilizzare le routines ran1, ran2, ran3 è necessario impostare un valore di seed negativo: questo serve per permettere la corretta inizializzazione del generatore, dopo della quale seed viene invertito di segno.

Per quanto riguarda la definizione dei parametri del generatore lineare congruenziale si suggeriscono i seguenti esempi:

Esempio 1

seed=1;
a=3;
c=5;
m=1024;

 

Il primo esempio mette in evidenza il problema della correlazione che si può manifestare nei generatori di numeri casuali lineari congruenziali. Ovviamente si tratta di un caso estremo.

Esempio 2

seed=1;
a=16807;
c=0;
m=2147483647;

Questo esempio è stato proposto da Park e Miller come standard minimo di qualità per un generatore di numeri casuali.