Теория вероятности и ковбой мальборо

Поиск геймдизайнеров, столкнул с проблемой – как мало людей имеет элементарные познания в теории вероятности и математической статистики. Важная штука все таки, для геймдизайна. Одно дело, просто не мочь посчитать баланс игры, другое дело делать это в корне не верно, думая, что оно выходит правильно. Не в том плане “правильно” или “не правильно”, а в том плане, что “думаю сделать вот так-то” … а на деле выходит совсем другое.
И так … основы комбинаторики и ковбой Мальборо, поехали!

Рассмотрим ряд простых комбинаторных задач, с которыми нашему ковбою Мальборо не посчастливилось столкнуться.


Задача 1.
У ковбоя Мальборо есть 3 красивых кольта, две шляпы и 4ре пары сапог. Сколькими вариантами, он может нарядиться для отпора инопланетного вторжения. Вторжение вторжением, но для фанаток хочется выглядеть красивым.

Решение:
Тут все совсем просто и примитивно. Нам необходимо посчитать количество вариантов, которыми ковбой можеть одеться.
N = 3*2*4 = 24
Почему так надеюсь понятно?
Взяв первый кольт, есть два варианта с разной шляпой. Для 3х кольтов, количество вариантов с разными шляпами соответственно будет 6. И аналогично для каждого из 6ти вариантов кольт+шляпа, есть вариант выбрать одни из 4х сапог. Изи.
В комбинаторике это называется правило произведения.
Если объект А можно выбрать из совокупности объектов m способами и после каждого такого выбора объект В можно выбрать n способами, то пара объектов (А, В) в указанном порядке может быть выбрана m*n способами.


Задача 2.
У ковбоя Мальборо есть монетка. Пока он ждет своего напарника у барной стойки, он играет в игру. Три раза кидает монетку, когда 3 раза подряд выпадает орел, он выпивает виски. Сколько разных последовательностей орлов и решек можно получить играя в эту игру? Какова вероятность выкинуть 3 раза подряд орла? Сколько виски выпьет ковбой Мальборо за час, если он делает 3 броска за 1 минуту?

Для начала запомним два правила.
- Разбивать задачу на простую, и абстрагироваться от деталей (шляпы, кольты и инопланетяне, виски совершенно не важные детали)
- Ответ который пришел на ум первый. Вероятно не верный … если вы конечно, не опытный и не гуру математики. На всякий случай лучше проверить наукой, чем довериться интуиции.

Итак, как посчитать количество разных последовательностей орлов и решек?
В комбинаторике есть такая простая теорема – Общее количество различных наборов при выборе k элементов из N с возвращением и с учётом порядка равняется N^k
Откуда это берется?
Самая простая абстракция, это корзинка с шарами. Доставая из нее шары, могут быть варианты, когда они возвращаются в корзину. И когда нам важен порядок или не важен.
В данном случае, 3 броска монетки равносильны корзине с шарами. Есть корзина с двумя шарами, черным и белым. Мы достаем шар, смотрим, его цвет, и кладем обратно. Снова достаем и т.д. Отсюда идет возвращение. Нам важна последовательность шаров – “белый, белый, черный” и “черный, белый, белый” для нас являются разными (хотя в той и в той комбинации 1 черный и 2 белых шара).
Я всегда стараюсь ситуацию свести именно к корзинке, шарикам и тому, как их достаем.

Есть два способа выбора с возвращением или без возвращения:
1. Выбор с возвращением: каждый вынутый шар возвращается в корзину, каждый следующий шар выбирается из полной корзины. Если шары пронумеровать, то в полученной выборке могут встречаться шары с одинаковыми номерами.
2. Выбор без возвращения: вынутые шары в корзину не возвращаются, и в полученном наборе не могут встречаться шары с одинаковыми номерами.

А так же два способа с учетом порядка и без учета порядка:
1. Выбор с учётом порядка: два набора номеров шаров считаются различными, если они отличаются составом или порядком номеров. Если мы возьмем корзинку с 5ю шарами, и будем вытаскивать по 3 шара, то наборы (3, 5, 2), (2, 5, 3) и (4, 1, 5) будут различны. Несмотря на то, что в 1 и втором случае мы доставали одинаковые шары. Учитываем порядок, поэтому комбинации разные.
2. Выбор без учёта порядка: два набора номеров шаров считаются различными, если они отличаются составом. Наборы, отличающиеся лишь порядком следования номеров, считаются одинаковыми.
Т.е в этом случае комбинации (3, 5, 2) и (2, 5, 3) не различаются и считаются идентичными. А комбинации (2, 5, 3) и (4, 1, 5) будут разными.

В итоге существует 4ре варианта выбора шаров из корзинки.
1) С возвращением с учетом порядка.
N = n^k, где n – кол-во элементов, k – длина выборки.

2) С возвращением без учета порядка.
N = С(n+k-1,k) = (n+k-1)!/(n-1)!*k!, где n – кол-во элементов, k – длина выборки.

3) Без возвращения с учетом порядка.
N = n!/(n-k)!, где n – кол-во элементов, k – длина выборки.

4) Без возвращения без учета порядка.
N = С(n,k) = n!/(n-k)!*k!, где n – кол-во элементов, k – длина выборки.

И для каждого варианта, существует соответственно своя формула для количества расчета комбинаций. Наш случай первый. Как уже писал, для него формула n^k
n = 2 – это количество вариантов выбора, орел или решка.
k = 3 – это длина последовательности, которую мы выбираем.
В формуле важно лишь их не перепутать ;)
Итого получается, что количество возможных последовательностей 8.

Вторая часть, какова вероятность 3 раза подряд выкинуть орла?

В данном случае, можно посчитать так -
Всего комбинаций как мы уже посчитали 8. Из 8ми комбинаций нас удовлетворяет только одна “орел, орел, орел”.
Тогда вероятность ее выкинуть P=1/8.

Но это будет верно только в случае с монеткой. Т.к. вероятность каждой комбинации одинакова, в силу того, что орел или решка выпадают с равной вероятностью.
Если бы, у нас орел выпадал с вероятностью не 50%, а 10%. То комбинацию “орел, орел, орел” мы получали бы гораздо реже, нежели “решка, решка, решка” (ну и вообще бы 3 орла были бы самой редкой комбинацией).
Т.е. посчитав, комбинаторно по отношению нужной комбинацией, ко всем комбинациям мы бы ошиблись, если бы выпадение комбинаций было бы не равновероятно.

Верным будет следующий расчет –
У нас есть событие А, выкинуть 1й раз орла. Есть событие А’, выкинуть орла, в случае если А имеет место быть. И А’’, вероятность выкинуть орла, если имело место событие А’.
Запутанно, да? Вот в нашем случае, надо найти этот А’’
Вероятность события А = 0,5.
Какова вероятность выкинуть орла повторно? Монетка не имеет ни какой памяти, а значит вероятность выкинуть орла второй раз, не зависит от того, что выкинули перед этим. События не зависимы. А вероятность произведения независимых событий равна произведению вероятностей этих событий.
Т.е. A’ = 0,5 * 0,5 = 0, 25
ну и по аналогии сразу же
A’’ = A’*A = A*A*A = 0,125
Т.е. все на самом деле просто – если есть цепочка независимых событий, то чтобы найти вероятность итогового события, вероятности надо просто перемножить.

Ну и 3я часть совсем уже просто.
В часе 60 минут. Значит наш герой, сделает 60 попыток выпить виски. Только в 12,5% случаев у него это удастся.
Значит он выпьет в среднем 7,5 стаканов виски за час.
Не стоит пугаться, нецелого числа стаканов. Мы же считаем среднее число. На самом деле будет какой-то час 6 стаканов, какой-то час 8 …
Более того, есть вероятность, что за час он не выпьет ни одного стакана. Ага =)
Давайте ее посчитаем?
У нас вероятность успеха в одной 3ке бросков 12,5%, вероятность не выпить тогда 87,5%. А бросков мы делаем за час 60.
Т.е. вероятность события 60 раз не выпить будет F = 0,875*0,875*0,875 … *0,875= 0,875^60 = 0,0003314997.
Вот такая вероятность не выпить ни одного стакана виски за час. Маленькая, но все равно есть же.


Задача 3
Ковбой Мальборо играет с друзьями в Техаский Холдем, принятая среди правильных ковбоев игра в покер. Наш герой уже проиграл кучу денег, а кольт забыл дома … это несправедливость … в общем принимается решение разрешить ее по средствам мозга. И наш герой решает для начала посчитать вероятность прихода ему двух тузов АА или двух королей КК.
А так же он решил задуматься, какова вероятность, что он соберет Флеш-Рояль.

В колоде 52 карты. Из них 4ре туза и 4ре короля.
Нужно достать первого туза, вероятность этого выходит 4/52
Вероятность достать второго туза – 3/51
Замечаем такую штуку – мы не возвращаем карты обратно в колоду.
И тогда вероятность получить AA = 4/52 * 3/51 = 0,452%
Логично, что вероятность получить КК такая же.
Как посчитать вероятность получить АА или КК ?
В этом случае не важно кого мы вытащим первым А или К.
Р = 8/52
А вот после доставания А или К уже важно какая будет вторая карта, и вероятность ее достать остается так же 3/51
P’ = 0,905%
Флеш рояль, это последовательность от 10 до туза, одной масти.
В техаском Холдеме 2 карты дается на руку, и еще 5 приходит на стол.
Посчитаем общее кол-во комбинаций из 7 карт. У нас получается выборка “без возвращения без учета порядка”.
Для этого есть вот такая страшная формула – С(n,k), где n – кол-во элементов, k – длина выборки.
В нашем случае n=52, k=7
С(n,k) = n!/(n-k)!*k!
C(52,7) = 133 784 560
Теперь нужно найти количество возможных рук, при которых будет Флеш-Рояль.
Всего может быть 4ре Флеш-Рояля (по одному на каждую масть), и если бы мы собирали комбинацию из 5ти карт, то всего возможных комбинаций и было бы 4ре.
Но у нас 7 карт, и к нужным 5ти картам на столе, еще могут быть 2 любые.
Как посчитать количество комбинаций, которые добавят эти карты?
По той же формуле – С(n,k) = n!/(n-k)!*k!
Только у нас теперь нужно взять 2 любые карты, из колоды в 47 карт (потому, что 5 карт для флеш рояля мы уже вытащили)
С(47,2) = 1081
А кол-во комбинаций для Флеш-Рояля, тогда будет 1081*4 = 4324.
И в итоге вероятность собрать Флеш-Рояль будет равна
Pr = 4324 / 133 784 560= 0,0032320620556%


Зачем же все это может пригодиться геймдизайнеру?
Иногда при создании игр, приходиться считать баланс и делать какие-то прикидки. Некоторые вещи можно делать эмпирически – сделал, потыкал, переделал и так пока не подберешь хороший вариант. Но иногда бывает лучше заранее сделать прикидки. Или объемы настолько большие, что эмпирически проверить геймдизайн нельзя (попробуй проверь эмпирически вероятность собрать рояль-флешь, ага).
Я как то делал настольную игру, там были карточки задания. Которые входили в игру по 3 штуки. Было важно, в каком порядке они вышли. Вот сколько нужно карточек задания, чтобы было не скучно?
Я сделал 20. Много это или мало?
С учетом, что важно в каком порядке карты будут выкладываться, и обратно они возвращаться не будут, то
N = n!/(n-k)! = 20!/17! = 6840
Не плохо. При том, что если к примеру увеличить кол-во карт до 30, количество комбинаций возрастет до 24360. А если сделать только 10 карточек миссий, то комбинаций будет лишь 720.
А это может быть такой штукой … ну вот разницы между 20-30 мы вряти заметим. Мы просто знаем, что чем больше, тем интереснее. Но помимо интересности может быть такая штука … стоимость. Стоимость художника который нарисует, стоимость производства и т.д. И тут сразу становиться понятнее, как держать себя в рамках интересно/дорого.

Leave a Reply