Si busca ejemplos de cómo crear un generador de números aleatorios (pseudo), se encontrará con cosas como esta (ejemplo específico 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);
}
Esos números específicos (9301, 49297, 233280) y el algoritmo se usan una y otra vez, pero nadie parece tener una referencia definitiva para esto. ¿Quién inventó este algoritmo y probó la distribución? ¿Hay un papel o algo para citar?
Respuestas:
Una búsqueda rápida en Google Books muestra que estos números (9301, 49297, 233280) se han utilizado en varias referencias:
El más antiguo es el método informático de 1977 para cálculos matemáticos de George Elmer Forsythe, Michael A. Malcolm, Cleve B. Moler (Prentice-Hall), aunque Google no muestra dónde se utilizó el texto en el libro, por lo que no se puede verificar.
La primera muestra del texto es Recetas numéricas en Pascal (primera edición): El arte de la computación científica , Volumen 1 de Press, Teukolsky, Vetterling y Flannery en una tabla de página completa de "Constantes para generadores portátiles de números aleatorios". Estos números particulares se dan con un desbordamiento en 2 ^ 31.
La serie de libros Numerical Recipes es muy popular y se ha impreso desde 1986.
fuente