Si vous recherchez des exemples de création d'un générateur de nombres aléatoires (pseudo) prédéfini, vous rencontrerez des choses comme celle-ci (exemple spécifique http://indiegamr.com/generate-repeatable-random-numbers-in-js/ ):
// the initial seed
Math.seed = 6;
// in order to work 'Math.seed' must NOT be undefined,
// so in any case, you HAVE to provide a Math.seed
Math.seededRandom = function(max, min) {
max = max || 1;
min = min || 0;
Math.seed = (Math.seed * 9301 + 49297) % 233280;
var rnd = Math.seed / 233280;
return min + rnd * (max - min);
}
Ces nombres spécifiques (9301, 49297, 233280) et algorithme sont utilisés maintes et maintes fois, mais personne ne semble avoir de référence définitive pour cela. Qui a inventé cet algorithme et testé la distribution? Y a-t-il un papier ou quelque chose à citer?
Réponses:
Une recherche rapide dans Google Livres montre que ces numéros (9301, 49297, 233280) ont été utilisés dans un certain nombre de références:
La plus ancienne est les méthodes informatiques de 1977 pour les calculs mathématiques de George Elmer Forsythe, Michael A. Malcolm, Cleve B. Moler (Prentice-Hall), bien que Google ne montre pas où le texte a été utilisé dans le livre, il ne peut donc pas être vérifié.
La première représentation du texte est Recettes numériques en Pascal (première édition): L'art du calcul scientifique , volume 1 par Press, Teukolsky, Vetterling et Flannery dans un tableau pleine page de "Constantes pour les générateurs de nombres aléatoires portables". Ces nombres particuliers sont donnés avec un débordement à 2 ^ 31.
La série de livres sur les recettes numériques est très populaire et est imprimée depuis 1986.
la source