Код Middle Реализация с нуля обновлено
Воспроизводимый генератор
Условие
createRandom(seed): функция next() возвращает число от 0 (включительно) до 1 (исключительно). Одинаковый seed даёт одинаковую последовательность.
Что проверяют тесты
диапазон
воспроизводимость
разные зёрна - разные последовательности
значения меняются
Как подойти
Math.random нельзя засеять, поэтому для воспроизводимых тестов, генерации демо-данных и одинаковых результатов у всех пользователей пишут свой генератор. >>> 0 держит состояние в 32 битах и не даёт переполнению уйти в неточные числа с плавающей точкой. Для криптографии это непригодно - там crypto.getRandomValues.
Подсказки: 2
- Линейный конгруэнтный генератор: следующее состояние считается из предыдущего.
0 приводит число к беззнаковому 32-битному.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.