Comments 26
Это очень интересно! Прочитал на одном дыхании -никогда не задумывался об этом)
Спасибо за перевод. Вообще, рандомизация - та ещё головная боль...
Вообще даже в игровых автоматах ставятся аппаратные генераторы случайных чисел, как правило сертифицированные. Мне доводилось с такими работать как раз для генерации колоды, выдавали вполне себе нормальные случайные числа, не зависящее от состояния системы.
А в чем проблема, что алгоритм предоставил игрокам колоду, перетасованную одним из 200,000 вариантов, а не из 57! ? Игроки ведь все равно не знают, какой вариант им выпал.
А вот тут начинается самый цимес: у тебя на руке 3 или 5 карт – это один из 132 тысяч или 300+ миллионов вариантов (порядок карт тоже важен) соответственно. А значит, по своим картам ты можешь как минимум уточнить вероятности раскладов противника, а как максимум – узнать всю колоду.
Кажется очевидным вариант выбирать случайную карту, исключать ее из выборки, выбирать следующую из оставшихся. И так до конца. Неужели кто-то делал иначе.
«выбирать случайную карту» в этом же и цимес
Можно лавовые лампы использовать)
Зачем?
В работе компьютеров нет случайности, а в лавовых лампах - есть (в достаточной на сегодня степени)
В работе компьютеров случайность есть уже довольно давно.
Вы забыли приставку псевдо-
Так программисты зря до сих пор используют генераторы псевдослучайных чисел? Где-то внутри компьютера есть бесплатный источник случайности? Просветите же, прошу.
Нет, не зря. Аппаратные ГСЧ очень медленные, поэтому их используют напрямую только там, где это оправдано. В иных случаях используют различные ГПСЧ, которые намного быстрее. Но их можно инициировать (seeding) от аппаратного ГСЧ для улучшения качества получаемых последовательностей.
ГСЧ в современных компьютерах встроен прямо в процессор - это используется в эмуляции TPM. Но если есть отдельный дискретный модуль TPM, то можно использовать и его.
То есть, "цимес" статьи не в тасовании колоды карт, а в отсутствии в те времена доступного нормального ГСЧ?
Вообще не понятно кому в принципе пришла идея выбирать комбинацию из запаса готовых - вроде бы очевидно, что тасовка карт - это сортировка эталонной колоды случайным образом.
Причина этого кажущегося несоответствия заключается в том, что люди обычно недооценивают количество возможных пар учеников. Из 30 учеников можно сформировать 435 пар. Если понять это, то вероятность того, что каждая пара учеников родилась в разные дни, уже не покажется такой высокой.
Мне показалось, что тут должно быть так:
"Причина этого кажущегося несоответствия заключается в том, что люди обычно ПЕРЕОЦЕНИВАЮТ количество возможных пар учеников."
Кроме того, вот этот логический вывод отнюдь не очевиден, кмк:
Из 30 учеников можно сформировать 435 пар. Если понять это, то вероятность того, что каждая пара учеников родилась в разные дни, уже не покажется такой высокой.
Учитывая, что новые колоды часто продаются не в рандоме а разложенные по мастям и рангу, думаю что очень много должно быть повторений в начале тасовки, нет ?
Тут на хабре был перевод https://samwho.dev/reservoir-sampling/ (не нашел)
Если я правильно помню, там и статья, и комментарии были содержательнее того, что представлено в этой переводной статье.
Как математика тасовки карт едва не разрушила империю онлайн-покера