Ну не совсем. Типичная реализация рандомизатора на вход принимает некое число, от которого всё и пляшет, и если в качестве входного взять текущее время в милисекундах, или ещё меньше - то вполне можно говорить про случайность
можно без входного числа
О каком может быть рандоме речь, когда ты за основу берёшь какое-либо значение? Добавляя в формирование рандомного значения другие переменные ты лишь имитируешь случайность. Помню как залез в одну библиотеку и случайно наткнулся на присваивание рандомного индекса, что-то типа такого:
const index = new Date().getMilliseconds() * Math.random().toString().replace('.', '') * 42;
Я конечно утрирую, но всё же было дело.
const index = new Date().getMilliseconds() * Math.random().toString().replace('.', '') * 42;
Я конечно утрирую, но всё же было дело.
Ну в теории можно получить механизм настоящей рандомизации.
Как и путешествии во времени.
Помимо аппаратных генераторов, есть алгоритмы выдающие рандом на основе системных логов
---- алгоритмы выдающие рандом на основе системных логов
За основу взяли логи, это не случайость.
За основу взяли логи, это не случайость.
если не удалить логи или не модифицировать их другим способом, то - случайность
порядок генерации системных событий и характер сообщений по ним не предопределен, особенно на n-ядерных системах
нет алгоритма, который бы предсказал в какой момент пользователь вставит флешечку, получит отлуп от VPN или краш какой-нибудь приложухи из-за нехватки билиотеки, и т.п.
логи не консистентны
порядок генерации системных событий и характер сообщений по ним не предопределен, особенно на n-ядерных системах
нет алгоритма, который бы предсказал в какой момент пользователь вставит флешечку, получит отлуп от VPN или краш какой-нибудь приложухи из-за нехватки билиотеки, и т.п.
логи не консистентны
Потому что это значение выбирается случайно. Ну тут конечно лучше за основу брать наносекунды, но я хз поддерживают ли компы такое
«Генерация случайных чисел слишком важна, чтобы оставлять её на волю случая» (Р. Кавью)
Чтобы написать коммент, необходимо залогиниться