Quels algorithmes sont utilisés dans les générateurs de nombres aléatoires modernes et de bonne qualité?
Quels algorithmes sont utilisés dans les générateurs de nombres aléatoires modernes et de bonne qualité?
Réponses:
Dans R, le paramètre par défaut pour la génération de nombres aléatoires est:
Vous pouvez facilement vérifier cela, à savoir.
> RNGkind()
[1] "Mersenne-Twister" "Inversion"
Il est possible de remplacer le générateur par défaut par d'autres PRNG, tels que Super-Duper, Wichmann-Hill, Marsaglia-Multicarry ou même un PRNG fourni par l'utilisateur. Voir le? RNGkind pour plus de détails. Je n'ai jamais eu besoin de changer le PRNG par défaut.
La bibliothèque C GSL utilise également le Mersenne-Twister par défaut.
Le Mersenne Twister est celui que j'ai rencontré et utilisé auparavant.
Le Xorshift PNG conçu par George Marsaglia. Sa période (2 ^ 128-1) est beaucoup plus courte que celle de Mersenne-Twister mais l'algorithme est très simple à mettre en œuvre et se prête à la parallélisation. Fonctionne bien sur les architectures à plusieurs cœurs telles que les puces DSP et Tesla de Nvidia.
À http://prng.di.unimi.it/ vous pouvez trouver une fusillade de plusieurs générateurs de nombres aléatoires testés à l'aide de TestU01, la suite de tests moderne pour les générateurs de nombres pseudo-aléatoires qui ont remplacé diehard et dieharder. Vous pouvez choisir.