Quali algoritmi vengono utilizzati nei generatori di numeri casuali moderni e di buona qualità?
Quali algoritmi vengono utilizzati nei generatori di numeri casuali moderni e di buona qualità?
Risposte:
In R, le impostazioni predefinite per la generazione di numeri casuali sono:
Puoi facilmente controllare questo, vale a dire.
> RNGkind()
[1] "Mersenne-Twister" "Inversion"
È possibile cambiare il generatore predefinito con altri PRNG, come Super Duper, Wichmann-Hill, Marsaglia-Multicarry o persino un PRNG fornito dall'utente. Vedere il? RNGkind per ulteriori dettagli. Non ho mai avuto bisogno di cambiare il PRNG predefinito.
La libreria C GSL utilizza anche Mersenne-Twister per impostazione predefinita.
Il Mersenne Twister è uno che ho incontrato e usato prima d'ora.
Xorshift PNG progettato da George Marsaglia. Il suo periodo (2 ^ 128-1) è molto più breve del Mersenne-Twister ma l'algoritmo è molto semplice da implementare e si presta alla parallelizzazione. Funziona bene su architetture a molti core come chip DSP e Tesla di Nvidia.
Su http://prng.di.unimi.it/ puoi trovare una sparatoria di diversi generatori di numeri casuali testati usando TestU01, la moderna suite di test per generatori di numeri pseudocasuali che ha sostituito diehard e dieharder. Puoi scegliere.