TGViewer
Блог* Блог* @dereference_pointer_there · 1.97K subscribers
Post #10385 841

Forwarded from Too Long, Did Read

Как правильно мешать карты

Недавно моя жена и ее брат запустили в продажу на амазоне свою карточную игру Vinto - игра безумно крутая, первые несколько месяцев мы в нее играли по 4-6 часов каждый день :)
Можно посмотреть подробнее тут: @vinto_game

Так вот, в vinto (как и наверное во всех карточных играх) очень важно хорошо перемешивать карты между раундами, тк из-за механики игры в сброс почти всегда подряд идут 2+ одинаковые карты.

Пока мы играли раунд за раундом (тотал наверное 100-200), часто оказывалось, что 3-4 игрока тянут одинаковую карту (например, шестерку) подряд, в рамках одного круга.

Мы шутили, что это {имя} так замечательно мешает карты, но в реальности это происходило примерно с одинаковой частотой вне зависимости от текущего крупье-мешателя.

Вот я и заинтересовался: может быть, мы просто плохо карты мешаем?

Если коротко: да!

Видели, как в фильмах / видео на ютубе разные профессиональные картежники мешают карты «веером», - делят на две равные стопки и как бы скрещивают их, сделав из каждой половины гармошку?

Так вот, оказывается, что это не понты!

После непродолжительного поиска статей / книжек на тему, я обнаружил, что техника перемешивания карт - супер популярная тема среди математиков: статей про сравнение эффективности разных видов перемешки больше 50 штук, все из разных универов, но с похожими выводами.

Не буду грузить подробностями расчетов - там всякие цепи маркова и довольно нетривиальная математика (мне пришлось посмотреть 3 лекции, чтобы вспомнить и заново въехать в тему).
Если все же хочется какой-то первоисточник - вот очень хорошая и понятная презентация с картинками.

Так вот, для того, чтобы приблизиться к равномерному распределения раскладок (такого, при котором вероятность
каждой последовательности карт → 1/52!):

- перемешивая «круто» (гармошкой, в оригинале - riffle shuffle, вот видео на всякий), для достижения почти равномерного распределения нужно 8 итераций (перемешиваний)

- перемешивая «обычно», как все (top to random, то есть перекладывая верхние сколько-то карт вниз) нужно 278 итераций!

Теперь понятно, почему всякие крупье в казино, фокусники и выпендрежники не мешают карты «обычно» - пришлось бы очень долго мешать.

И вот еще в тему прикольная статья 1999 года , если интересно: в ней довольно понятно рассказывается о том, как несколько разработчиков нашли уязвимость в алгоритме перемешивания карт в популярном в то время онлайн покере, с помощью которой можно было предсказывать (с немаленькой вероятностью), какие карты выпадут после перемешивания.

Кстати, так как никто из нас мешать карты riffle’ом не умеет, а на турнирах по Vinto вроде бы надо, ребята купили мешалки на алике за ~10$, которые имитируют riffle shuffle.
Интересно было бы посчитать, насколько эта имитация хуже «true» riffle shuffle.

Как-то так!
Мораль: мешайте свои карты карты правильно и покупайте Vinto, если можете и хотите :)
  • 🔥 7
  • 🤯 4
  • ❤ 1
  • 👍 1
  • 😁 1
More from @dereference_pointer_there
  1. Oct 16, 2026Тем временем разработчики на Go *tailscale
  2. Oct 16, 2026А всем остальным нам?!
  3. Oct 16, 2026#meme про сон
  4. Oct 15, 2026#prog #rust #suckassstory rustc uses the Path hash code to identify files, and the Path ha…
  5. Oct 15, 2026#python #meme
  6. Oct 14, 2026r/rust (потому что написано вроде на Tauri)
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →