Теория вероятности и комбинаторика на примере игры Hearthstone Поля сражений

В школьной программе, университете, на различных курсах и даже на собеседованиях на аналитиков дают решать задачи на комбинаторику и теорию вероятности, которые оторваны от реальности. Самый известный пример — «в ящике лежат 5 чёрных шаров и 3 белых, найти вероятность того, что вы достанете белый». На момент, когда подобные программы писали, действительно было мало примеров, связанных с этими математическими направлениями, но благо сейчас всё иначе. В этой статье я хочу рассказать как работает комбинаторика и теория вероятности на примере игры Hearthstone «Поля сражений».
«Поля сражений» — это игра внутри игры. Относится к жанру автобаттлер, то есть вы, находясь в таверне (фаза подготовки) имеете ресурсы, на которые покупаете карты (существа или заклинания), выставляете на свой стол, а уже на фазе боя, ваши существа с существами соперника сражаются в автоматическом режиме. В статье я буду рассказывать именно про фазу подготовки, то есть про нахождение игрока в таверне.
Всего на «Полях сражений» 10 типов существ, в каждой игре всегда представлено только 5. Также есть существа без типов, они представлены всегда.
Таверна
У таверны, существ и заклинаний есть уровни — с 1 по 6. В таверне нет существ, выше её уровня. То есть в таверне первого уровня только существа и заклинания 1-го уровня, в таверне второго уровня существа и заклинания 1 и 2-го уровней и так далее. То есть существа и заклинания уровня ниже могут быть, выше нет.
Формирование таверны. Ниже я распишу сколько существ представлено в каждом уровне таверны:
1 уровень — 3 существа
2 и 3 уровни — 4 существа
4 и 5 уровни — 5 существ
6 уровень — 6 существ
Также существует пул существ. Данные взял из источника.
В колоде по 18 копий каждого миньона 1-го уровня, 15 копий 2-го уровня, 13 копий 3-го уровня, 11 копий 4-го уровня, 9 копий 5-го уровня и 6 копий 6-го уровня.
В дальнейших расчётах будем опираться на эти данные.
Комбинаторика
Начнём с первой таверны. Перед вами скриншот из игры, где видно 3 существа. Как эти существа сформированы и сколько всевозможных комбинаций существует?

Для начала разберёмся сколько всего сейчас существ в пуле — 18 копий миньона одного типа. Как уже говорил ранее, типов 5 и в 1-ой таверне по 2 миньона каждого типа — 18×2×5 = 180 и также есть один миньон без типа и у него тоже 18 копий. То есть 180+18 = 198. Столько получилось всего существ со всеми копиями. Нужно найти сколько всего существует комбинаций, чтобы уместить 198 карт всего в 3 места. На 1 место можем уместить 198 карт, а на второе уже 197, так как 1 место уже занято, и на третье место осталось разместить 196 карт. Итого 198×197×196 = 7 645 176. Каждый раз так делать неудобно, лучше всего преобразовать в алгебраический вид. Пусть 198 карт это k, а 3 места это n. Выражение 198×197×196, похоже на факториал 198, но с отброшенной частью 195!, а 195 это 198-3, то есть k-n. Итоговая формула имеет вид:
Что именно мы сейчас посчитали? Мы посчитали количество комбинаций с учётом закрепления определённого места за существом. На изображении снизу указал номер места, слева номера комбинаций.

В итоговом числе комбинаций (7 645 176) учтены все эти три варианта размещения карт. А что если, нам не нужно считать каждую из этих комбинаций отдельно, а достаточно самого факта наличия этих существ. Тогда надо сначала посчитать сколько всего комбинаций существует внутри 3-х ячеек. В первую можно разместить 3 карты, во вторую две оставшиеся и последнюю. Получается 3×2×1 = 6, или 3!. Тогда надо итоговое число разделить на n! чтобы объединить все эти комбинации. Итоговая формула:

Обычно в обучающих материалах пишут, что размещение используется когда порядок важен, а сочетание — когда нет. Я бы сказал, что в размещении закрепляется определённое положение за каждым элементом, а в сочетании это закрепление отсутствует и считается за 1 комбинацию сам факт появления элементов.
Теория вероятности
Теперь, после комбинаторики, посмотрим, как её использовать для вычисления вероятности тех или иных событий.
Предположим, что мы рассчитываем найти «Кепочника», после повышения таверны до 2-го уровня. Эта карта, если рано попадается, может на шестой ход предоставить на выбор существо 6-го уровня, что даёт преимущество на ранних этапах игры. Перейдём к расчётам.

Всех существ 1-ой таверны уже посчитали — 198. Во второй таверне по 15 копий каждого миньона. Типов существ 5 (по 2 каждого типа) и существ без типов 3, всего существ 2-ой таверны будет 15×5×2 + 15×3 = 195. Всего существ 1 и 2-ой таверны 195 + 198 = 393. На этот раз карт в таверне уже 4, это означает, что в данном случае мы размещаем 393 карты на 4 места.
Найти надо вероятность того, что карта «Кепочник» будет в таверне хотя бы в одном экземпляре. Решений данной задачи как минимум три, мы же рассмотрим классический метод расчёта. Для начала выведем формулу для расчёта всевозможных комбинаций
и после этого запишем формулу комбинаций, где нет ни одного «Кепочника»
Сначала делим на общее количество — получаем вероятность того, что «Кепочника» не будет:
Из единицы вычитаем полученный результат
И получаем искомую вероятность.
Делать «ролл» или не делать? Вероятность того, что «кепочник» попадётся сразу — 0,1447, обратная — 0,8553, если есть ресусры, можно сделать «ролл», вероятности здесь можно перемножать от обратного. То есть найти веростность того, что кепочник не попадётся 2 раза подряд 0,8553×0,8553 =0,732; 3 раза подряд 0,8553×0,8553×0,8553 =0,626; если потратим все 5 монет = 0,391, то есть вероятность того, что на последнюю монету, мы найдём хотя бы одного кепочника будет равна 1-0,391 = 0,609. С одной стороны, вероятность очень заманчивая (как минимум больше, чем у броска монетки), но здесь хочется задуматься о нашем восприятии вероятности. Зачастую, мы игнорируем абсолютные числа и стараемся «сократить» соотношение, но именно абсолютные числа показывают нам масштаб вероятностей. 2 из 3-х, 60 из 100 и 600 000 000 из 1 000 000 000 ощущаются по-разному (как по мне, по крайней мере). В данном расчёте мы перебрали всего 6 комбинаций из почти 1 миллиарда возможных. Поэтому стоит ли доверять расчётам или нет — всегда решаете сами.
Подкрутки
Существуют подкрутки или нет — вопрос, который мучает всех геймеров. Мы рассмотрим шансы выпадения ключевой карты для типа существ — Пираты, а именно карта «Кривоклык».

Сценарий — вы в пятой таверне, у вас готовый билд на пиратах, достаточно золота, и за один ход вы совершаете 2-3 раскопки в шестую таверну. Сколько раскопок нужно, чтобы получить «Кривоклык»? Как увеличить вероятность раскопки?
Для начала, как и в прошлой схеме, выясним количество всевозможных комбинаций. Карт по 6 копий одного миньона в шестой таверне. Типов существ 5, карты каждого типа 2, 2 существа без типов и 1 существо всех типов. Суммарно карт шестой таверны в пуле получается: 6×5×2+6×2+6 = 78 существ. В раскопке на выбор даётся 3 существа. То есть используем сочетание 78 на 3 места.
Столько всего комбинаций раскопки.
Теперь посчитаем количество комбинаций в которых есть «Кривоклык». На форуме говорится, что одинаковые карты могут попадаться, когда в пуле мало существ. Но когда в пуле существ ещё много, то дубли карт не попадаются. Я основываюсь исключительно на игровом опыте и видел дубли карт в раскопке только в аномалиях, когда в пуле действительно не было карт.
Рассматриваем вариант, что во время раскопки вы увидите только одну карту «Кривоклык». Чтобы посчитать количество комбинаций: мы берём, что любая из 6 копий уже стоит на своём месте, тогда для остальных двух число комбинаций 72 во втором слоте и 71 во втором и далее делим на два, чтобы объединить комбинации: 6×72×71/2 =15 336.
Вероятность того, что в раскопке окажется карта «Кривоклык»:
Вероятность того, что не попадётся равна 1-0,202 =0,798.
Если мы провели 5 раскопок, то вероятность того, что карта не выпадет все 5 пять равна:
Много это или мало, на самом деле непонятно, важно понимать, что это лишь математическое действие. На деле, если вы не забираете карты из пула, а просто каждый раз раскапываете, то вероятность отдельно взятой раскопки всегда будет составлять 0,202. Это очень важно для понимания и разделения сухих расчётов и реальных действий. Самый простой пример можно провести с монеткой: шанс того, что 5 раз подряд выпадет «орёл» 0,03125, вроде мизерный, но это не значит, что прямо сейчас вы не сможете повторить этот результат, так как выпадение «орла» в каждом отдельно взятом броске составляет 0,5.
Что делать, чтобы повысить шансы? Можно не возвращать карты в пул. Карты возвращаются, когда игрок либо вышел/проиграл, либо когда вы продаёте карту. Вернёмся к примеру, когда провели 5 раскопок и не выпало нужной. Эти карты пропали из пула (если вы их не продали), тогда уже для следующей раскопки количество всех комбинаций будет:
Комбинаций для «Кривоклыка» 6×67×66/2 =13 266. Вероятность стала:
Подняли шанс всего лишь на 1%.
Чтобы не считать все возможные комбинации — просто оставлю таблицу с вероятностями.

Повторю — учитываются комбинации, где только 1 нужная карта в раскопке. Только если в пуле нет 30-ти карт 6-го уровня, мы повышаем шанс раскопки до почти 30%. Чисто математически невозможно определить есть ли подкрутка или нет, даже если вы много раскопок провели, шансы найти необходимую карту, конечно, увеличиваются, но не на такое большой процент, чтобы можно было обвинить в подкрутке.
Мы рассмотрели комбинаторику и теорию вероятности на двух примерах — выпадение карты в таверне и раскопки. В данном случае комбинаторика позволяет понять весь масштаб происходящих событий. Делая много «роллов» или много раскопок, вы не увеличиваете шансы выпадения нужной карты, так как вы, по сути, просматриваете лишь несколько комбинаций из почти миллиарда в первом случае и 80 тысяч во втором. Может быть такое, что ни один игрок за всю игру не видел определённую карту ни в раскопках ни в таверне. Это не значит, что не нужно «копать» или не нужно делать «ролл», но и надеятся на то, что «я уже 10 роллов сделал, карта должна выпасть на 11-ый» тоже не стоит. «Поля сражений» привлекают игроков как раз своей «рандомностью», а она получается из великого множества комбинаций.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.