Prova il generatore congruenziale di Lehmer


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.
Numero di partenza (0 < x0 < M)

M

A

C


Ritorna alla pagina principale.


Ritorna alla homepage di Lorenzo Azzalini.