Код Middle Реализация с нуля обновлено

Воспроизводимый генератор

Условие

createRandom(seed): функция next() возвращает число от 0 (включительно) до 1 (исключительно). Одинаковый seed даёт одинаковую последовательность.

Что проверяют тесты

  • диапазон

  • воспроизводимость

  • разные зёрна - разные последовательности

  • значения меняются

Как подойти

Math.random нельзя засеять, поэтому для воспроизводимых тестов, генерации демо-данных и одинаковых результатов у всех пользователей пишут свой генератор. >>> 0 держит состояние в 32 битах и не даёт переполнению уйти в неточные числа с плавающей точкой. Для криптографии это непригодно - там crypto.getRandomValues.

Подсказки: 2
  1. Линейный конгруэнтный генератор: следующее состояние считается из предыдущего.
  2. 0 приводит число к беззнаковому 32-битному.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.