Mersenne Twister

algoritmo per la generazione di numeri pseudocasuali

Mersenne Twister è un algoritmo per la generazione di numeri pseudocasuali sviluppato nel 1997 da Makoto Matsumoto (松本 眞) e Takuji Nishimura (西村 拓士), supplendo a varie mancanze presenti negli altri algoritmi per generare numeri pseudocasuali oggi diffusi e usati (come il generatore LCG presente nel nucleo di base del C, la funzione rand()).

Ci sono almeno due varianti conosciute di questo algoritmo, che differiscono solo nel valore del numero primo di Mersenne usato. Il più nuovo ed usato è il Mersenne Twister MT 19937 che è usato per generare numeri casuali su Microsoft Excel[1].

Vantaggi modifica

L'MT 19937 ha i seguenti vantaggi:

  1. È stato progettato per avere un periodo di 219937 − 1 (i creatori di questo algoritmo hanno dimostrato questa proprietà). Questo periodo spiega l'origine del nome: è un Numero primo di Mersenne e alcune delle costanti dell'algoritmo sono anch'esse numeri primi di Mersenne.
  2. Permette di generare punti equidistribuiti in spazi fino a 623 dimensioni (molti altri generatori mostrano le loro mancanze utilizzando N valori consecutivi per selezionare un punto in uno spazio N-dimensionale).
  3. È più veloce della maggior parte degli altri algoritmi, compresi quelli notevolmente inferiori in quanto a qualità.
  4. Ha passato numerosi test statistici di casualità, tra cui il test Diehard.

Note modifica

  1. ^ CASUALE (funzione CASUALE). URL consultato il 14 luglio 2018.

Altri progetti modifica

Collegamenti esterni modifica