hearthstone-club.ru - Форум Hearthstone: Heroes of Warcraft

Автор Тема: Посчитаем вероятности при составлении колоды.  (Прочитано 2962 раз)

KoshmarOff

  • Moderator
  • Epic
  • *****
  • Сообщений: 469
    • Просмотр профиля
Мне всегда было интересно рассчитать разные вероятности, чтобы оптимизировать свои колоды для HeartStone (на сколько я могу судить, не только мне это было бы интересно), но не стоит воспринимать мои расчёты, как нечто обязательное или рекомендуемое, да и ошибки в них не исключены.

Давайте для начала посчитаем вероятность того, что на первом ходу у нас в руке будет хотябы 1 карта за 1 манну (при условии,  что мы не делали замены карт при раздаче и ходим первыми, то есть на руке у нас 4 карты).
Для чего мы
1.  Посчитаем сколько вообще у нас может быть сочетаний и размещений из колоды в 30 карт по 4 картам:
С(30, 4) = 30! / (4! * (30 — 4)!) = 30! / (4! * 26!) = (27 * 28 * 29 * 30) / (2 * 3 * 4) = 657720 / 24 = 27405;
А(30, 4) = 30! / (30 — 4)! = 30! / 26! = 27 * 28 * 29 * 30 = 657720;
2. Также посчитаем сколько из этих сочетаний и размещений не будут содержать ни одной карты за 1 манну, если у нас в колоде (например) 2 карты за 1 манну:
С(28, 4) = 20475;
А(28, 4) = 491400;
3. Теперь посчитаем вероятность прихода таких комбинаций, как их отношение ко всем возможным:
Р(2) = 20475 / 27405 = 455 / 609 = 0.7471;
Р(2) = 491400 / 657720 = 455 / 609 = 0.7471, что означает, что из 609 сыгранных игр в 455 играх среди первых 4 карт у вас не будет карт за 1 манну (при тех условиях, которые мы определили ранее), или приблизительно из 1000 игр в 747 играх, или из 100 игр в 74-75 играх, или из 10 игр в 7 (при условии, что кол-во сыгранных вами игр стремится к бесконечности).
4. Тогда, чтобы всёже вычислить искомую вероятность того, что нам (наоборот) придёт хотябы 1 карта за 1 манну вычтем из 1 вероятность полученную на предыдущем шаге:
Р(2) = 1 — 0.7471 = 0.2529.

Исходя из соображения, что почти все карты за 0 манны имеют большую эффективность в комбо с другими картами, чем сами по себе, их мы пока учитывать и не будем, как карты которые можно сыграть на первом ходу, но зато далее мы попробуем рассчитать вероятность получить заранее задуманную комбинацию.

Теперь, когда мы немного разобрались с техникой вычислений таких вероятностей посчитаем эти вероятности для разного кол-ва карт за 1 манну в колоде (вычислять мы их будем через размещения, так как мне так проще, а ранее мы уже убедились, что оба способа приводят к одному результату, что в общем-то логично):
Р(1) = 1 — А(29, 4) / А(30, 4) = 0.1333;
Р(2) = 1 — А(28, 4) / А(30, 4) = 0.2529;
Р(3) = 1 — А(27, 4) / А(30, 4) = 0.3596;
Р(4) = 0.4545;
Р(5) = 0.5384;
Р(6) = 0.6123;
Р(7) = 0.6769;
Р(8 ) = 0.7331;
Р(9) = 0.7816;
...
Р(28) = 1.0;
Р(29) = 1.0;
Р(30) = 1.0.

Но не будем забывать, что у нас есть ещё возможность заменить какие-то из 3 (если мы ходим первыми) первых карт при раздаче. Кстати, заодно сейчас и оценим шансы сделать удачную замену, если у нас в колоде (например) 4 карты за 1 манну.
1. Посчитаем вероятность того, что при раздаче у нас не будет ни одной карты за 1 манну и вероятность того, что у нас будет хотябы одна карта за 1 манну:
Р = А(26, 3) / А(30, 3) = 0.6404;
Р = 1 — 0.6404 = 0.3596;
2. Теперь посчитаем вероятность удачной замены,
2.1 Если будем заменять 1 карту:
Р = 4 / 27 = 0.1481;
2.2 Если будем заменять 2 карты:
Р = 4 / 27 + 4 / 27 — (4 / 27) * (3 / 26) = 0.2792, где для своих вычислений мы используем сложение вероятностей, так как нас устроит положительный исход либо первого, либо второго события, при том, что исход второго события зависит от исхода первого.
2.3 Если будем заменять все 3 карты:
Р = 4 / 27 + 4 / 27 + 4 / 27 — (4 / 27) * (3 / 26) — (4 / 27) * (3 / 26) — (4 / 27) * (3 / 26) + (4 / 27) * (3 / 26) * (2 / 25) = 0.4202;
3. Теперь посчитаем вероятность того, что у нас либо будет хотябы 1 карта за 1 манну и замены уже делать для её получения не надо, либо будет удачная замена. Для чего снова воспользуемся сложением вероятностей, но при этом будем считать, что если при раздаче у нас уже есть хотябы 1 карта за 1 манну, то замены мы уже не делаем, то есть условная вероятность равна 0:
Р = 0.3596 + 0.1481 = 0.5077;
Р = 0.3596 + 0.2792 = 0.6388;
Р = 0.3596 + 0.4202 = 0.7798.

Давайте продолжим и посчитаем вероятность того, что на втором ходу у нас в руке будет хотябы 1 карта за 2 манны, а в колоде у нас 4 карты за 2 манны (при условии, что мы ходим первыми и не брали карт кроме как в начале каждого своего хода, то есть на руке у нас 5 карт, может мы что-то из них уже и сыграли на первом ходу, а может и нет, в расчёт мы это не берём).
Р = 1 — А(26, 5) / А(30, 5) = 0.5384;
Или посчитаем например вероятность того, что на девятом ходу у нас уже будет "Лорд Джараксус":
Р = 1 — С(29, 12) / С(30, 12) = 0.4;

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

Кроме того, я считаю, что не стоит набирать колоду опираясь только на маннастоимость карт, а необходимо для начала и для себя определить какие-то основные комбинации карт, исходя из них продумать какую-то идею колоды, определить подходящий для неё темп, а только потом уже добирать карт с нужной маннастоимостью в необходимом кол-ве.
И если уж мы заговорили о комбинациях, то давайте попробуем рассчитать вероятность выпадения какой-нибудь комбинации. Допустим у нас есть комбо из 2 карт уже для первого хода (например карта за 0 манны и ещё что-нибудь), каждой из этих карт у нас по 2 в колоде, тогда:
А(2, 1) * А(2, 1) * А(26, 2) = 2 * 2 * 650 = 2600 - возможных размещений по 4 карт, из которых 2 - наше комбокарты, а 2 оставшиеся - любые другие, а всего возможных размещений по 4 карты из нашей колоды в 30 карт - А(30, 4) = 657720, тогда вероятность будет 2600 / 657720 = 0.0039.
Теперь допустим, что у нас есть комбо из 2 карт для пятого хода (например карты за 2 и за 3 манны), каждой из этих карт у нас по 2 в колоде, тогда вероятность будет С(2, 1) * С(2, 1) * С(26, 6) / С(30, 8 ) = 0.1573, а если мы ещё и дублируем по свойствам одну из этих пар карт другой парой карт, то вероятность будет уже С(4, 1) * С(2, 1) * С(24, 6) / С(30, 8 ) = 0.1839, а если у нас таких комбинаций 2 на колоду и они независимы друг от друга, тогда вероятность, что придёт одна из них можно посчитать, как сумму вероятностей 0.1839 + 0.1839 = 0.3678. А если у нас комбинация не из 2 карт, а из 3 и каждой карты у нас по 2 в колоде, то вероятность выпадения такой комбинации будет С(2, 1) * С(2, 1) * С(2, 1) * С(24, 5) / С(30, 8 ) = 0.0726.
Отсюда уже можно сделать вывод, что при сборе комбинаций карт для своей колоды не стоит рассчитывать на ранние комбинации, что по возможности стоит дублировать карты в комбинациях, но ещё выгодней иметь большее кол-во самих комбинаций, хотя можно и не делать подобных выводов.
« Последнее редактирование: 02 Август, 2013, 21:36:05 от KoshmarOff »

Старик

  • Administrator
  • Legendary
  • *****
  • Сообщений: 1168
    • Просмотр профиля
Труд достойный!
Не могу оценить правильность, ибо гуманитарий.. но выглядит невероятно!)

И теперь с позиции гуманитария, маленькая просьба.
По сочетаниям для разных комбо небольшой вывод в конце есть, а в середине текста вывода по приходу карты определенного манакоста на определенном ходу нет. Это печалит.. Можно добавить вывод?

KoshmarOff

  • Moderator
  • Epic
  • *****
  • Сообщений: 469
    • Просмотр профиля
ну я надеюсь там нет серьёзных ошибок, а только некоторые погрешности.

по подбору карт по манакосту и нет особого вывода, просто пример расчёта, чтобы каждый смог определить для себя сам нужное кол-во, я рассчитывал для 4 карт за 1 манну в колоде, так как мне показалось это оптимальным кол-вом, при учете, что это именно карты для первого хода, а не основа какого-то более позднего комбо, помимо этого я еще упомянул, что сначала стоит подобрать комбинации карт, а потом добирать одиночные, при учете того, чтобы они были универсальны сами по себе для начала (а может и при этом комбинироваться с более поздними картами (дополнительно) или хотябы быть хорошей поддержкой и на более поздних этапах игры), но какие именно это уже от колоды зависит, какой-то сборке нужны карты, чтобы затерпеть, когда другой сборке больше подойдут агрессивные карты или для разгона.

ещё можно добавить, что при расчёте на 4 карты за 1 манну в колоде, если среди первых трёх карт не пришло ни одной за 1 манну, можно и не заменять все 3 карты, а ограничиться одной двумя, так как всё равно шансы неплохие.
« Последнее редактирование: 02 Август, 2013, 22:19:39 от KoshmarOff »

Jonny125

  • Epic
  • ****
  • Сообщений: 285
    • Просмотр профиля
Интересно было почитать. Надо освежить теорию вероятности. Ибо про сочетания и размещения через факториалы помню, но считал все равно как-то интуитивно. Тут проще:)
Все равно чувствую, что колоды будем составлять интуитивно и править уже по результатам непосредственно игр с противниками. Хотя интересно попробовать просчитать идеальную кривую маны, но это может получиться для прямолинейных колод, я думаю, которые играют больше от своей стратегии, чем от стратегии противника. Но такие колоды обычно не сильно успешны...
Арена 0-3 выполнено: рога, шаман.

Petruha

  • Legendary
  • *****
  • Сообщений: 1598
    • Просмотр профиля
но выглядит невероятно!)
невероятно бесполезно я бы сказал...
Цитировать
Можно добавить вывод?
именно его отсутствие (не потому что автор не написал, а просто его нет) и делает вышеизложенный труд просто разминкой для мозга и не несёт в себе никакой практической пользы
В ком юмор вызывает зло, тому с умом не повезло (с)

KoshmarOff

  • Moderator
  • Epic
  • *****
  • Сообщений: 469
    • Просмотр профиля
и править уже по результатам непосредственно игр с противниками.
и это правильно. кстати при всех этих вычислениях, если это не ошибки, то выявились любопытные выводы, которые вполне можно учесть для оптимизации колоды, я думаю...

KoshmarOff

  • Moderator
  • Epic
  • *****
  • Сообщений: 469
    • Просмотр профиля
делает труд разминкой для мозга и не несёт в себе никакой практической пользы
с первым согласен 8) а со вторым бы поспорил, но не буду, так как в самом начале ещё сказал, что мне было в основном интересно, но и при желании кому это тоже интересно, может найти тут что-то полезное и для себя (я по крайней мере нашел)  :)