И снова о парадоксе мальчика и девочки




Решение задачи становится ещё более нелогичнее. Представьте, что я скажу вам, что у моего друга двое детей и один ребёнок — девочка, которая родилась во вторник. Предположим, что при нормальных условиях вероятность рождения ребёнка в один из семи дней недели одинакова. Какова вероятность того, что второй ребёнок тоже девочка? Вы можете подумать, что ответ всё равно будет 1/3; какое значение имеет вторник? Но и в этом случае интуиция подводит нас. Ответ: 13/27, что не просто не интуитивно, это очень странно. В чём дело в данном случае?

На самом деле вторник меняет вероятность, потому что мы не знаем, какой ребёнок родился во вторник или возможно двое детей родились во вторник. В данном случае используем ту же логику, как и выше, мы считаем все возможные комбинации, когда хотя бы один ребёнок — девочка, которая родилась во вторник. Как и в предыдущем примере предположим, что детей зовут A и B, комбинации выглядят следующим образом:

 

  • A — девочка, которая родилась во вторник, B — мальчик (в данной ситуации есть 7 возможностей, по одной для каждого дня недели, когда мог родится мальчик).
  • В — девочка, которая родилась во вторник, А — мальчик (также 7 возможностей).
  • A — девочка, которая родилась во вторник, В — девочка, которая родилась в другой день недели (6 возможностей).
  • В — девочка, которая родилась во вторник, А — девочка, которая родилась не во вторник (также 6 вероятностей).
  • А и В — две девочки, которые родились во вторник (1 возможность, нужно обратить на это внимание, чтобы не посчитать дважды).

Суммируем и получаем 27 разных равновозможных комбинаций рождения детей и дней с хотя бы одной возможностью рождения девочки во вторник. Из них 13 возможностей, когда рождаются две девочки. Также это выглядит совершенно нелогично, и похоже данная задача создана только для того, чтобы вызвать головную боль. Если вы до сих пор озадачены этим примером, у игрового теоретика Йеспера Юла есть хорошее объяснение этого вопроса на его сайте.

Если сейчас вы работаете над игрой…

Если в игре, дизайном которой вы занимаетесь, есть случайность, это отличный повод проанализировать её. Выберите какой-нибудь элемент, который вы хотите проанализировать. Сначала спросите себя какова вероятность для данного элемента по вашим ожиданиям, какой она должна быть, по вашему мнению, в контексте игры. Например, если вы создаёте RPG и думаете, какой должна быть вероятность того, что игрок сможет победить монстра в битве, спросите себя какое процентное отношение побед кажется вам правильным. Обычно во время игры в консольные RPG, игроки очень расстраиваются при поражении, поэтому лучше, чтобы они проигрывали не часто… может в 10% случаев или меньше? Если вы дизайнер RPG, вы, наверно, знаете лучше, чем я, но нужно, чтобы у вас была базовая идея того, какой должна быть вероятность.

Затем спросите себя является ли это чем-то зависимым (как карты) или независимым (как игральные кости). Разберите все возможные результаты и их вероятности. Убедитесь в том, что сумма всех вероятностей равна 100%. И наконец, конечно, сравните полученные результаты с результатами ваших ожиданий. Происходит ли бросание игральных костей или вынимание карт таким образом, как вы задумали или вы видите, что вам нужно корректировать значения. И, конечно, если вы найдете, что нужно корректировать, вы можете использовать те же расчёты, чтобы определить насколько нужно что-то скорректировать!

Задание на дом

Ваше “домашнее задание” на этой неделе поможет вам отточить ваши навыки работы с вероятностью. Вот две игры в кости и карточная игра, которые вам предстоит анализировать, используя вероятность, а также странная механика игры, которую я когда-то разрабатывал — на ее примере вы проверите метод Монте-Карло.

Игра №1 — Драконьи кости

Это игра в кости, которую мы как-то раз придумали с коллегами (спасибо Джебу Хэвенсу и Джесси Кингу!), и которая специально выносит мозг людям своими вероятностями. Это простая игра казино, которая называется “Драконьи кости”, и это азартное соревнование в кости между игроком и заведением. Вам дается обычный кубик 1d6. Цель игры — выбросить число больше, чем у заведения. Тому дается нестандартный 1d6 — такой же, как и у вас, но вместо единицы на одной грани — изображение Дракона (таким образом, у казино кубик Дракон-2-3-4-5-6). Если заведению выпадает Дракон, оно автоматически выигрывает, а вы — проигрываете. Если вам обоим выпадает одинаковое число, это ничья, и вы кидаете кости снова. Победит тот, кто выбросит большее число.

Разумеется, все складывается не совсем в пользу игрока, ведь у казино есть преимущество в виде грани Дракона. Но действительно ли это так? Вам и предстоит это вычислить. Но перед этим проверьте свою интуицию. Предположим, что выигрыш составляет 2 к 1. Таким образом, если вы побеждаете, вы сохраняете свою ставку и получаете ее удвоенную сумму. К примеру, если вы ставите 1 доллар и выигрываете, вы сохраняете этот доллар и получаете еще 2 сверху, итого — 3 доллара. Если проигрываете — теряете только свою ставку. Сыграли бы вы? Так вот, чувствуете ли вы интуитивно, что вероятность больше, чем к 2 к 1, или все же считаете, что меньше? Другими словами, в среднем за 3 игры вы рассчитываете выиграть более одного раза, или менее, или один раз?

Как только с интуицией разобрались, применяйте математику. Для обоих игральных костей существует лишь 36 возможных положений, так что вы без проблем можете просчитать их все. Если вы не уверены в этом предложении “2 к 1”, подумайте вот о чем: предположим, вы сыграли в игру 36 раз (каждый раз ставя по 1 доллару). Из-за каждой победы вы получаете 2 доллара, из-за проигрыша — теряете 1, а ничья ничего не меняет. Посчитайте все свои вероятные выигрыши и проигрыши и решите, потеряете ли вы некоторую сумму долларов, или же приобретете. Затем спросите себя, насколько права оказалась ваша интуиция. А затем — осознайте, какой же я злодей.

И, да, если вы уже задумались над этим вопросом — я намеренно сбиваю вас с толку, искажая настоящую механику игр в кости, но я уверен, вы сможете преодолеть это препятствие, всего лишь хорошенько подумав. Попробуйте решить эту задачу самостоятельно. Я опубликую все ответы здесь на следующей неделе.

Игра №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 для пересчета всех случайных чисел. Как и раньше, сделайте это несколько раз и посмотрите, одинаковы ли величины, которые вы получаете. Если разброс слишком велик, удвойте число пробегов и попробуйте снова.

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

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

Нерешенная задача №1: Лотерея IMF

Первая нерешенная задача — предыдущее задание на дом. Я легко могу применить метод Монте-Карло (с помощью С++ или же Excel), и буду уверен в ответе на вопрос “сколько ресурсов получит игрок”, но я не знаю точно, как предоставить точный доказуемый ответ математически (это же бесконечная серия). Если вы знаете ответ, опубликуйте его здесь… после того, как проверите его методом Монте-Карло, разумеется.

Нерешенная задача №2: Последовательности фигур

Эту задачу (и снова она выходит далеко за пределы задач, решаемых в этом блоге) мне подкинул один знакомый геймер более 10 лет тому назад. Он заметил одну интересную особенность, играя в Вегасе в блэк-джек: вынимая карты из башмака на 8 колод, он видел десять фигур подряд (фигура, или фигурная карта — 10, Джокер, Король или Королева, так что всего их 16 в стандартной колоде на 52 карты, таким образом, их 128 в башмаке на 416 карт). Какова вероятность того, что в этом башмаке по меньшей мере одна последовательность десяти или более фигур? Предположим, что их тасовали честно, в случайном порядке. (Или же, если вам так больше нравится, какова вероятность того, что нигде не встречается последовательность из десяти или более фигур?)

Можем упростить задачу. Вот последовательность из 416 частей. Каждая часть — 0 или 1. Есть 128 единиц и 288 нулей, случайно разбросанных по всей последовательности. Сколько существует способов в случайном порядке перемежить 128 единиц 288 нулями, и сколько раз в этих способах встретится как минимум одна группа десяти или более единиц?

Всякий раз, как я только принимался за решение этой задачи, она казалась мне легкой и очевидной, но, стоило мне углубиться в детали, она внезапно разваливалась на части и казалась мне просто-таки невозможной. Так что не торопитесь выпаливать ответ: сядьте, хорошенько подумайте, изучите условия задачи, попробуйте подставить реальные числа, потому что все люди, с которым я говорил об этой задаче (в том числе и несколько аспирантов, работающих в этой сфере), реагировали примерно одинаково: “Это же совершенно очевидно… ой, нет, погоди, совсем не очевидно”. Это тот самый случай, на который у меня нет метода для просчитывания всех вариантов. Я безусловно мог бы прогнать задачу методом брутфорса через компьютерный алгоритм, но гораздо более любопытно было бы узнать математический способ решения этой задачи.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: