Se você procurar exemplos de criação de um gerador de números aleatórios semeado (pseudo), encontrará coisas como esta (exemplo 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);
}
Esses números específicos (9301, 49297, 233280) e o algoritmo são usados repetidamente, mas ninguém parece ter uma referência definitiva para isso. Quem inventou esse algoritmo e testou a distribuição? Existe um papel ou algo para citar?
Respostas:
Uma pesquisa rápida do Google Livros mostra que esses números (9301, 49297, 233280) foram usados em várias referências:
O mais antigo é o dos métodos computacionais para computação matemática de 1977 de George Elmer Forsythe, Michael A. Malcolm e Cleve B. Moler (Prentice-Hall), embora o Google não mostre onde o texto foi usado no livro para que não possa ser verificado.
A primeira mostra o texto é Numerical Recipes in Pascal (Primeira edição): The Art of Scientific Computing , Volume 1 da Press, Teukolsky, Vetterling e Flannery em uma tabela de página inteira de "Constantes para portadores de números aleatórios portáteis". Esses números particulares são dados com um excesso em 2 ^ 31.
A série de livros de Receitas Numéricas é imensamente popular e está impressa desde 1986.
fonte