Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yan_Shrayber_-_vse_3.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.77 Mб
Скачать

Игра №2 — Бросок на удачу

Это азартная игра в кости, которая называется “Бросок на удачу” (также “Птичья клетка”, потому что иногда кости не бросают, а помещают в большую проволочную клетку, напоминающую клетку из “Бинго”). Эта простая игра, суть которой сводится примерно к этому: поставьте, скажем, 1 доллар на число от 1 до 6. Затем вы бросаете 3d6. За каждую кость, на которой выпадает ваше число, вы получаете 1 доллар (и сохраняете свою изначальную ставку). Если ни на одной кости ваше число не выпадает, казино получает ваш доллар, а вы — ничего. Таким образом, если вы ставите на 1, и вам трижды выпадает единица на гранях, вы получаете 3 доллара.

Интуитивно кажется, что в этой игре равные шансы. Каждая кость — это индивидуальный, 1 к 6, шанс выиграть, так что в сумме всех трех ваш шанс выиграть равен 3 к 6. Однако, разумеется, помните, что вы слагаете три отдельных кости, и вам разрешено складывать только при условии, что мы говорим об отдельных выигрышных комбинациях одной и той же кости. Что-то вам нужно будет умножить.

Как только вы вычислите все возможные результаты (вероятно, это будет легче сделать в Excel, чем от руки, ведь их 216), игра на первый взгляд все еще выглядит четно-нечетной. Но на самом деле, у казино все же больше шансов выиграть — насколько больше? В частности, сколько в среднем вы рассчитываете проиграть денег за каждый раунд игры? Все, что вам нужно сделать — суммировать выигрыши и проигрыши всех 216 результатов, а затем разделить на 216, что должно быть довольно просто… Но, как видите, тут есть несколько ловушек, в которые вы можете попасть, и именно поэтому я говорю вам: если вам кажется, что в этой игре равные шансы на выигрыш, вы все неправильно поняли.

Игра №3 — 5-карточный стад покер

Если вы уже размялись на предыдущих играх, давайте проверим, что мы знаем об условной вероятности, на примере данной карточной игры. В частности, давайте представим себе покер с колодой на 52 карты. Давайте также представим 5-карточный стад, где каждый игрок получает только по 5 карт. Нельзя сбросить карту, нельзя вытянуть новую, никакой общей колоды — вы получаете всего лишь 5 карт.

Роял-флеш — это 10-J-Q-K-A в одной комбинации, всего их четыре, таким образом, существует четыре возможных способа получить роял-флеш. Рассчитайте вероятность того, что вам выпадет одна такая комбинация.

Я должен предупредить вас об одном: помните, что вы можете вытянуть эти пять карт в любом порядке. То есть сначала вы можете вытянуть туза, или десятку, неважно. Так что, рассчитывая это, имейте в виду, что на самом деле существует более четырех способов получить роял-флэш, если предположить, что карты выдавались по порядку!

Игра №4 — Лотерея imf

Четвертую задачу не получится так просто решить методами, о которых мы сегодня говорили, но вы легко сможете смоделировать ситуацию при помощи программирования или же Excel. Именно на примере этой задачи вы сможете отработать метод Монте-Карло.

Я уже упоминал ранее игру “Chron X”, над которой когда-то работал, и там была одна очень интересная карта — лотерея IMF. Вот как она работала: вы использовали ее в игре. После того, как раунд завершался, карты перераспределялись, и существовала возможность в 10%, что карта выйдет из игры, и что случайный игрок получит 5 единиц каждого типа ресурса, фишка которого присутствовала на этой карте. Карта вводилась в игру без единой фишки, но, каждый раз, оставаясь в игре в начале следующего раунда, она получала одну фишку. Таким образом, существовал 10% шанс того, что вы введете ее в игру, раунд закончится, карта покинет игру, и никто ничего не получит. Если этого не произойдет (с вероятностью 90%), появляется 10% шанс (вообще-то 9%, поскольку это 10% из 90%), что в следующем раунде она покинет игру, и кто-то получит 5 единиц ресурсов. Если карта покинет игру через один раунд (10% от имеющихся 81%, так что вероятность — 8,1%), кто-то получит 10 единиц, еще через раунд — 15, еще — 20, и так далее. Вопрос: каково вообще ожидаемое значение числа ресурсов, которые вы получите от этой карты, когда она наконец покинет игру?

Обычно мы бы попытались решить эту задачу, найдя возможность каждого исхода, и умножив на количество всех исходов. Таким образом, существует вероятность в 10%, что вы получите 0 (0.1*0 = 0). 9%, что вы получите 5 единиц ресурсов (9%*5 = 0.45 ресурсов). 8,1% того, что вы получите 10 (8.1%*10 = 0.81 ресурсов в целом, ожидаемое значение). И так далее. А потом мы бы все это суммировали.

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

Если вы достаточно хорошо разбираетесь в программировании, напишите программу, которая будет симулировать эту карту. У вас должна быть временная петля, которая приводит переменную в исходное положение нуля, показывает случайное число и с вероятностью 10% переменная выходит из петли. В противоположном случае она добавляет 5 к переменной, и цикл повторяется. Когда она наконец выйдет из петли, увеличьте общее число пробных пусков на 1 и общее число ресурсов (насколько — зависит от того, на каком значении остановилась переменная). Затем сбросьте переменную и начните заново. Запустите программу несколько тысяч раз. В конце концов разделите общее количество ресурсов на общее количество пробегов — это и будет ваше ожидаемое значение метода Монте-Карло. Запустите программу несколько раз, чтобы удостовериться, что числа, которые вы получили, примерно одинаковы; если разброс все еще велик, увеличьте число повторов во внешней петле, пока не начнете получать соответствия. Можете быть уверены, какие бы числа вы в итоге ни получили, они будут приблизительно верны.

Если же вы незнакомы с программированием (а хотя даже если и знакомы), вот вам небольшое упражнение на разминку ваших навыков работы с Excel. Если вы — гейм-дизайнер, навыки работы с Excel никогда лишними не бывают.

Сейчас вам очень пригодятся функции IF и RAND. RAND не требует значений, она всего лишь выдает случайное десятичное число от 0 до 1. Обычно мы совмещаем его с FLOOR и плюсами и минусами, чтобы симулировать бросок кости, о чем я уже упоминал ранее. Впрочем, в этом случае мы всего лишь оставляем вероятность в 10% того, что карта покинет игру, так что мы можем просто проверить, не составляет ли значение RAND меньше 0,1, и больше не забивать себе этим голову.

IF имеет три значения. По порядку: условие, которое либо верно, либо нет, затем значение, которое возвращается, если условие верно, и значение, которое возвращается, если условие неверно. Так что следующая функция будет возвращаться 5% времени, и 0 остальных 90% времени: =IF(RAND()<0.1,5,0)

Существует много способов установить эту команду, но я бы использовал такую формулу для ячейки, которая представляет первый раунд, скажем, это ячейка A1:

=IF(RAND()<0.1,0,-1)

Здесь я использую негативную переменную в значении “эта карта не покинула игру и пока не отдала никаких ресурсов”. Так что, если первый раунд завершился, и карта покинула игру, A1 — это 0; в противоположном случае это -1.

Для следующей ячейки, представляющей второй раунд:

=IF(A1>-1, A1, IF(RAND()<0.1,5,-1))

Так что, если первый раунд завершился, и карта сразу покинула игру, A1 — это 0 (число ресурсов), и эта ячейка просто скопирует это значение. В противоположном случае A1 — -1 (карта еще не покинула игру), и эта ячейка продолжает случайное движение: 10% времени она будет возвращать 5 единиц ресурсов, в остальное время ее значение будет по-прежнему равняться -1. Если применять эту формулу к добавочным ячейкам, мы получим добавочные раунды, и, какая бы ячейка ни выпала вам в конце, вы получите конечный результат (или -1, если карта так и не покинула игру после всех разыгранных вами раундов).

Возьмите этот ряд ячеек, который представляет собой единственный раунд с этой картой, и копируйте и вставьте несколько сотен (или тысяч) рядов. Возможно, у нас и не получится сделать бесконечный тест для Excel (существует ограниченное количество ячеек в таблице), но, по крайней мере, мы можем рассмотреть большинство случаев. Затем выделите одну ячейку, в которой вы поместите среднее значение результатов всех раундов (Excel любезно предоставляет функцию AVERAGE() для этого).

В Windows вы хотя бы можете нажать F9 для пересчета всех случайных чисел. Как и раньше, сделайте это несколько раз и посмотрите, одинаковы ли величины, которые вы получаете. Если разброс слишком велик, удвойте число пробегов и попробуйте снова.

Нерешенные задачи

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]