Если вы ищете примеры создания засеянного (псевдо) генератора случайных чисел, вы столкнетесь с подобными вещами (конкретный пример 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);
}
Эти конкретные числа (9301, 49297, 233280) и алгоритм используются снова и снова, но ни у кого, кажется, нет определенной ссылки для этого. Кто изобрел этот алгоритм и протестировал дистрибутив? Есть ли бумага или что-то, чтобы процитировать?
Ответы:
Быстрый поиск в Google Книгах показывает, что эти числа (9301, 49297, 233280) были использованы в ряде ссылок:
Самым старым из них являются компьютерные методы математических вычислений 1977 года Джорджа Элмера Форсайта, Майкла А. Малкольма, Кливе Б. Молера (Прентис-Холл), хотя Google не показывает, где текст использовался в книге, поэтому его невозможно проверить.
Самое раннее, показывающее текст - « Числовые рецепты на Паскале» (первое издание): «Искусство научных вычислений» , том 1, издательство Press, Teukolsky, Vetterling and Flannery в полностраничной таблице «Константы для портативных генераторов случайных чисел». Эти конкретные числа даны с переполнением в 2 ^ 31.
Серия книг « Числовые рецепты » пользуется огромной популярностью и печатается с 1986 года.
источник