M è il periodo di questo generatore.
Se vengono generati tutti i numeri tra 0 ed M - 1, si ha il cosiddetto "periodo pieno".
A, C ed M devono essere scelti con cura per produrre lunghe e casuali sequenze di numeri.
Esistono varie condizioni necessarie per generare un periodo pieno. Quelle fondamentali sono:
Esiste poi una serie di altre condizioni che variano a seconda che si scelga un M piuttosto che un altro. Ad esempio: se M = 10q, C non dev'essere divisibile per 2 o per 5, e A (mod 20) = 1.
Se, invece, M = 2q, C (mod 2) = 1 (quindi dev'essere dispari) e A (mod 4) = 1.
Se C = 0, x0 (cioè il numero di partenza) dev'essere diverso da 0.
Esempio:
M | A | C |
102 | 21 | 7 |
27 | 17 | 13 |
103 | 81 | 107 |
29 | 65 | 33 |
Xi = (A × Xi-1 + C) mod M
Si prega di utilizzare un M minore di 1000.
Ritorna alla pagina principale.
Ritorna alla homepage di Lorenzo Azzalini.