В течение 6 лет у меня на сайте была генератор случайных чисел . В течение долгого времени это был первый или второй результат в Google для «генератора случайных чисел», и он использовался для определения десятков, если не сотен конкурсов и рисунков на дискуссионных форумах и в блогах (я знаю, потому что вижу рефералов в моем веб-логи и обычно иди посмотри).
Сегодня кто-то написал мне по электронной почте, чтобы сказать , что это может быть не так случайно, как я думал. Она попыталась сгенерировать очень большие случайные числа (например, от 1 до 10000000000000000000) и обнаружила, что они почти всегда были такое же количество цифр. Действительно, я обернул функцию в цикл, чтобы я мог генерировать тысячи чисел и, конечно же, для очень больших чисел вариация составляла всего около 2 порядков.
Почему?
Вот зацикленная версия, так что вы можете попробовать ее сами:
http://andrew.hedges.name/experiments/random/randomness.html
Он включает в себя как простую реализацию, взятую из Mozilla Developer Network , так и некоторый код 1997 года, который я стер с веб-страницы, которая больше не существует ("Central Randomizer 1.3" Пола Хоула). Просмотрите исходный код, чтобы увидеть, как работает каждый метод.
Я прочитал здесь и в другом месте о Мерсенн Твистер. Что меня интересует, так это то, почему не было бы большего различия в результатах из встроенной в JavaScript функции Math.random . Спасибо!