Les nombres Aléatoires

Problèmes de la fonction random.

ll est bien connu que les générateurs de nombres aléatoires des librairies classiques (gcc, …) qui produisent une suite de nombres “pseudo aléatoires” entre 0 et 1 (selon une loi uniforme [0 1) présentent un défaut majeur pour les “applications critiques” : ils font apparaître une périodicité et qui plus est, assez courte…

plusieurs pistes pour palier le problème :

 La fonction drand48() fonctionne assez correctement, dans ce sens que sa période (que tout générateur possède) est suffisamment longue pour les applications actuelles, semble-t-il ; il y a, aussi, la bibliothèque écrite par Martin Lüscher,
http://luscher.web.cern.ch/luscher/ranlux/index.html
qui possède plusieurs avantages pratiques-un, par exemple, est la possibilité de préciser
le niveau de “complexité’’ (luxury level 🙂 )

 Il y a en C++ http://www-personal.umich.edu/ wagnerr/MersenneTwister.html
tiré de
// M. Matsumoto and T. Nishimura, “Mersenne Twister : A 623-Dimensionally
// Equidistributed Uniform Pseudo-Random Number Generator”, ACM Transactions on
// Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30.
Mais c’est en 32 bits.

 La librairie GSL du projet GNU propose des implémentations de différents
générateurs de nombres aléatoires tel que la fameuse méthode de Mersenne
Twister :
http://www.gnu.org/software/gsl/manual/html_node/Random-number-generator-algorithms.html
J’ignore si ça répond à vos besoins, mais cette méthode a de bonnes propriétés
en terme de périodicité.

 Mersenne Twister (http://www.math.sci.hiroshima-u.ac.jp/ m-mat/MT/emt.html)

 Makoto Matsumoto a déménagé (Keio

une piste : générer des nombres aléatoires uniformes en parallèle grâce aux fonction développées par Pierre L’Ecuyer (fonctions RngStreams http://www.iro.umontreal.ca/~lecuyer/).

à compléter corriger partager …
Frédéric