Случайная дробь от 0 до 1. 8 десятичных знаков. Равномерная вероятность на всём интервале.
Случайное десятичное число от 0 до 1 — это наиболее фундаментальная единица случайности в математике. Непрерывное равномерное распределение на интервале [0, 1] присваивает одинаковую плотность вероятности каждой точке. Вероятность попадания в любой подинтервал [a, b] равна ровно b минус a. Значение между 0,3 и 0,7 имеет вероятность 40%. Значение от 0 до 0,01 имеет вероятность ровно 1%. Простота — это и есть сила: каждый участок интервала подчиняется одному и тому же правилу.
Каждый десятичный знак умножает количество возможных значений на десять. При 8 десятичных знаках этот генератор создаёт одно из 100,000,000 равновероятных значений. Это соответствует приблизительно 26.6 битам энтропии на десятичное число. Для сравнения: подбрасывание монеты даёт 1 бит, стандартный кубик — 2,58 бита, а 16-символьный пароль — примерно 100 бит. Добавление одного десятичного знака даёт 3,32 дополнительных бита энтропии, потому что log₂(10) = 3,3219.
Отображаемые цифры генерируются путём извлечения случайных байтов из crypto.getRandomValues() и преобразования каждого байта в цифру от 0 до 9 методом отклоняющей выборки. Байты, которые привели бы к смещению по модулю (значения от 250 до 255), отбрасываются и генерируются заново. Это гарантирует, что каждая цифра является независимо и равномерно случайной.
Практически каждый случайный процесс в вычислительной науке начинается с равномерного десятичного числа на [0, 1]. Метод, называемый обратным преобразованием, формализованный математиками в начале XX века, преобразует равномерную случайную величину в любое желаемое распределение. Подставьте равномерное десятичное число в обратную функцию распределения — и на выходе вы получите именно это распределение. Нормальные кривые, экспоненциальные затухания, пуассоновские потоки — всё возникает из этого единственного строительного блока.
Станислав Улам и Джон фон Нейман стали пионерами методов Монте-Карло в Лос-Аламосе в 1940-х годах, используя равномерные случайные числа для моделирования диффузии нейтронов в ядерной физике. Сегодня тот же принцип применяется в прогнозировании погоды, финансовом моделировании, разработке лекарств и обучении моделей машинного обучения. Скромная дробь из [0, 1] — это зерно, из которого вырастает любое моделирование.
Диаграмма распределения выше делит интервал [0, 1] на десять равных корзин и подсчитывает, сколько сгенерированных значений попало в каждую. Каждый столбец окрашен в свой цвет из спектра значений: коралловый для значений вблизи нуля, ярко-жёлтый в центре и зелёный ближе к единице. Со временем столбцы сходятся к одинаковой высоте. Эта визуальная равномерность и ЕСТЬ равномерное распределение. График сходимости отслеживает скользящее среднее. Обратите внимание, как ранние значения создают резкие колебания, а продолжительная генерация постепенно подтягивает среднее к математическому ожиданию, равному ровно 0,5.
Случайные десятичные числа обеспечивают прямой мост между абстрактной теорией вероятностей и практическим экспериментированием. Попросите каждого студента сгенерировать 20 десятичных чисел на странице /decimal/20 и отсортировать их вручную. Спросите: сколько из них меньше 0,5? Ожидаемый ответ — 10, но индивидуальные отклонения делают упражнение неожиданным. Пусть весь класс объединит результаты в общую гистограмму. Коллективная диаграмма приблизится к идеальной равномерности гораздо быстрее, чем любой индивидуальный набор, демонстрируя, как размер выборки определяет статистическую достоверность.
Для продвинутого упражнения попросите студентов вычислить среднее своих 20 значений. Среднее этих средних по всему классу будет плотно сосредоточено вокруг 0,5. Эта вложенная сходимость иллюстрирует центральную предельную теорему: средние значения случайных выборок образуют колоколообразную кривую вокруг математического ожидания, независимо от исходного распределения. Инструмент не требует учётных записей, не хранит данные студентов и не устанавливает отслеживающие cookie.
Каждое десятичное число генерируется полностью в вашем браузере с помощью Web Cryptography API. Сервер доставляет страницу; ваше устройство создаёт каждое значение. Результаты хранятся в localStorage и памяти вашего браузера, под вашим полным контролем. Отправка этого URL передаёт инструмент, но никогда — результаты. Получатель генерирует собственные независимые случайные десятичные числа на своём устройстве.
Отправьте эту ссылку. Получатель сгенерирует собственные независимые значения на своём устройстве.
Ежедневное вдохновение
Работы, отобранные жюри A' Design Award, представленные каждое утро.