Wenn Sie nach Beispielen für die Erstellung eines gesetzten (Pseudo-) Zufallszahlengenerators suchen, werden Sie auf solche Dinge stoßen (spezielles Beispiel 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);
}
Diese spezifischen Zahlen (9301, 49297, 233280) und der Algorithmus werden immer wieder verwendet, aber niemand scheint eine endgültige Referenz dafür zu haben. Wer hat diesen Algorithmus erfunden und die Verteilung getestet? Gibt es ein Papier oder etwas zu zitieren?
Antworten:
Eine schnelle Suche in Google Books zeigt, dass diese Nummern (9301, 49297, 233280) in einer Reihe von Referenzen verwendet wurden:
Die älteste ist die Computermethode von 1977 für mathematische Berechnungen von George Elmer Forsythe, Michael A. Malcolm und Cleve B. Moler (Prentice-Hall), obwohl Google nicht anzeigt, wo der Text im Buch verwendet wurde, sodass er nicht überprüft werden kann.
Die früheste Darstellung des Textes ist Numerical Recipes in Pascal (Erstausgabe): The Art of Scientific Computing , Band 1 von Press, Teukolsky, Vetterling und Flannery in einer ganzseitigen Tabelle mit "Konstanten für tragbare Zufallszahlengeneratoren". Diese bestimmten Zahlen werden mit einem Überlauf bei 2 ^ 31 angegeben.
Die Buchreihe Numerical Recipes ist sehr beliebt und seit 1986 im Druck.
quelle