Pendant 6 ans, j'ai eu un générateur de nombres aléatoires sur mon site web. Pendant longtemps, il a été le premier ou le deuxième résultat de Google pour "générateur de nombres aléatoires" et a été utilisé pour décider de dizaines, voire de centaines de concours et de tirages au sort sur des forums de discussion et des blogs (je le sais parce que je vois les référents dans mes journaux Web et j'ai l'habitude d'aller y jeter un œil).
Aujourd'hui, quelqu'un m'a envoyé un e-mail pour me dire ce n'est peut-être pas aussi aléatoire que je le pensais. Elle a essayé de générer de très grands nombres aléatoires (par exemple, entre 1 et 10000000000000000000) et a constaté qu'ils contenaient presque toujours le même nombre de chiffres. En effet, j'ai enveloppé la fonction dans une boucle afin de pouvoir générer des milliers de nombres et, bien sûr, pour de très grands nombres, la variation n'était que d'environ 2 ordres de grandeur.
Pourquoi ?
Voici la version en boucle, pour que vous puissiez l'essayer par vous-même :
http://andrew.hedges.name/experiments/random/randomness.html
Il comprend à la fois une mise en œuvre simple tirée de l'application Réseau de développeurs Mozilla et du code datant de 1997 que j'ai piqué sur une page web qui n'existe plus (Paul Houle's "Central Randomizer 1.3"). Voir la source pour voir comment chaque méthode fonctionne.
J'ai lu aquí y ailleurs à propos de Mersenne Twister. Ce qui m'intéresse, c'est de savoir pourquoi il n'y aurait pas une plus grande variation dans les résultats de JavaScript. Math.random fonction. Merci !
0 votes
"sarnath'd" comme dans, battu au poing, ou dans ce cas, la réponse.
6 votes
Si vous cherchez la réponse à la question posée dans le titre, voir stackoverflow.com/questions/2344312/