Орёл или решка: как выглядит честный бросок монеты
Настоящие монеты падают той же стороной в 50,8% случаев, серии из шести — норма, а браузер бросает честнее большого пальца. Вот доказательства.
Настоящий бросок монеты не совсем честный. В 2023 году команда Франтишека Бартоша записала 350 757 бросков от 48 человек и обнаружила: монета падает той же стороной, какой лежала перед броском, в 50,8% случаев. Так подтвердился прогноз Перси Диакониса из 2007 года: подброшенная монета прецессирует — покачивается вокруг оси — и чуть дольше проводит в воздухе стартовой стороной вверх. Перевес крошечный, но настоящий. Если вы всегда кладёте монету орлом вверх, а друг всегда ставит на решку, вы потихоньку отбираете у него полпроцента.
У виртуального броска этой проблемы нет. Нет стартовой стороны, нет техники большого пальца, нет прецессии. Исход решает один случайный бит, и оба его значения равновероятны в точности.
Откуда берётся случайность
В браузере два генератора случайных чисел, и они не взаимозаменяемы. Math.random() — псевдослучайный генератор с одним начальным значением: быстрый, годится перемешать плейлист, но предсказуем, если знать его внутреннее состояние. crypto.getRandomValues() берёт данные из пула энтропии операционной системы — того же источника, из которого создаются ключи шифрования. Именно им пользуется этот инструмент. Предсказать следующий бросок не может никто, включая сам код.
Важно ли это, когда решается, кто моет посуду? Честно — нет. Но криптографическая честность здесь ничего не стоит, зато инструмент выдерживает и ситуации, где на кону что-то серьёзное.
Серии — это и есть честность
Бросьте 100 раз — и почти наверняка где-то встретите шесть одинаковых подряд: вероятность хотя бы одной такой серии около 80%. Людям это кажется подозрительным. На деле всё наоборот: подозрительно выглядела бы история без серий, потому что настоящая случайность идёт кучками.
Классический урок — казино Монте-Карло, август 1913 года, когда чёрное на рулетке выпало 26 раз подряд. Игроки разорялись, ставя на красное: были уверены, что колесо «должно» выровняться. Не должно. У колеса нет памяти, у монеты тоже — после пяти орлов шестой бросок всё так же 50/50. Счётчик серий в инструменте отчасти для того и нужен: посмотреть на это своими глазами.
Почему проценты так долго не выравниваются
Панель статистики показывает доли орлов и решек, и после десяти бросков там запросто может быть 70/30. Всё в порядке. Проценты сходятся медленно: после 1000 бросков доли обычно держатся в паре пунктов от 50/50, а вот абсолютная разница между числом орлов и решек со временем, как правило, растёт. Закон больших чисел обещает, что выровняется отношение, а не разность. Об это спотыкаются почти все.
Так что подбирайте выборку под задачу. Один бросок решает, кто выносит мусор. Хотите проверить честность инструмента — дайте ему несколько сотен бросков и смотрите, как проценты ползут к пятидесяти.
Старше евро и старше денария
Римляне играли в это под названием navia aut caput — «корабль или голова», по изображениям на монетах. Ставки бывают крупнее посуды: каждый овертайм в НФЛ начинается с броска, а в 1969 году «Милуоки Бакс» выиграли у «Финикс Санз» бросок монеты за первый номер драфта НБА. Выбрали Лью Алсиндора, будущего Карима Абдул-Джаббара, и через два сезона взяли титул. «Финикс», проигравший тот бросок, не выиграл чемпионство до сих пор. Немалая часть истории франшизы висела на одном бите информации.
Когда нужен быстрый и бесспорный 50/50 — бросьте виртуальную монету, и пусть решает пул энтропии.