Je fais une simulation de Monte Carlo en C++ et j'utilisais Boost pour des nombres aléatoires. J'ai aussi utilisé GSL. Mais il s'avère que la génération de nombres aléatoires est l'une de mes plus grandes inefficacités d'exécution, donc j'ai juste commencé à utiliser le bon vieux rand()
de cstdlib
.Quel est le mauvais rand de stdlib.h?
À quel point est-ce que je risque d'avoir de mauvaises propriétés aléatoires sur ma simulation? J'utilise environ 10^6 ou 10^7 échantillons de nombres aléatoires.
Avez-vous lu les réponses dans [* about-rand- *] (http://stackoverflow.com/questions/328950/c-the-definitive-truth-about-rand-random-and-arc4random) avant de poster :?) Surtout Martin v. Löwis réponse donne quelques détails. Une simple requête google avec 'period of rand.c' l'a montré sur la première page. Des implémentations médiocres et la sélection de 10^6 numéros sur une gamme dont la garantie ne serait que d'au moins 32767 ne serait pas vraiment mon premier choix. Qu'est-il arrivé à ces implémentations de Mersenne-Twister? N'était-ce pas un bon compromis entre la vitesse et une longue période? – Dilettant