Roll the Bones # 2: Расчет вероятности

08.09.2021

Чтобы полностью проанализировать механизм броска кубиков, нам необходимо иметь представление о вероятности возможных результатов, по крайней мере, в той степени, в которой мы можем сказать, какой из двух результатов наиболее вероятен, и если потенциальный результат крайне маловероятен. В этом выпуске игры Roll the Bones будут представлены основные правила теории вероятностей, связанные с броском игральных костей, и описан способ вычисления вероятностей для простых систем. Более сложные системы бывает трудно анализировать вручную, поэтому нам, возможно, придется полагаться на компьютеры для вычислений, поэтому мы также кратко поговорим об этом.

Элементарная теория вероятностей

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

Вероятности обычно связаны с событиями: какова вероятность того, что конкретное событие произойдет в конкретной ситуации? Вероятности - это числа от 0 до 1, где 0 означает, что событие никогда не произойдет, а 1 означает, что оно обязательно произойдет. Числа между ними означают, что событие возможно, но не обязательно, а большее число означает большую вероятность. Например, вероятность 1/2 означает, что вероятность того, что событие произойдет, такая же, как вероятность того, что этого не произойдет. Это подводит нас к основным правилам вероятностей:

Правило отрицания: если событие с вероятностью p произойдет, оно с вероятностью 1- p не произойдет.

Правило совпадения: если два события независимы и имеют вероятности, соответственно, p и q, то вероятность того, что оба произошли, равна p × q (p умножить на q).

Два события независимы, если исход одного события не влияет на исход другого. Например, когда вы бросаете кубик дважды, результат второго броска не зависит от результата первого броска (кубик не запоминает предыдущий бросок), поэтому события независимы. С другой стороны, события `` кубик приземлился четным числом вверх '' и `` кубик приземлился с номером в верхней половине вверх '' не являются независимыми, поскольку знание одного из них поможет вам предсказать другой точнее. Если взять одно из этих событий отдельно (на обычном d6), то вероятность того, что оно произойдет, составит ½, но если вы знаете, что результат равный, есть ⅔ вероятность, что оно окажется в верхней половине, как два из 4, 5 и 6 - четные.

Выше мы использовали еще неустановленное правило игры в кости: если кубик правильный, все стороны имеют одинаковую вероятность оказаться на вершине. В играх мы обычно имеем дело с честными играми в кости (все остальное считается мошенничеством), поэтому, если не указано иное, будем предполагать, что это так. Таким образом, если у кубика n сторон, каждая из них с вероятностью 1 / nокажется на вершине после броска. Число на верхней грани или вершине обычно берется за результат броска (хотя некоторые d4 читают свой результат на нижних краях). Большинство игральных костей имеют результаты от 1 до n, где n - количество сторон игральной кости, но некоторые десятигранные кости имеют значения от 0 до 9, а некоторые имеют маркировку 00, 10, 20,. 90. Мы будем использовать термин dn для обозначения справедливой n-сторонней кости с номерами от 1 до n. Когда мы хотим сослаться на другие типы, мы опишем их явно.

Если у нас есть событие E, мы используем p (E) для обозначения вероятности этого события. Итак, правила отрицания и совпадения можно переформулировать как

p(не E) знак равно 1 - р (Е)
p(E 1 и E 2 ) знак равно p (E 1 ) × p (E 2 )

Расчет с вероятностями

Мы можем использовать правила отрицания и совпадения, чтобы найти вероятности выпадения нескольких кубиков. Например, если вы выбросите два d6, вероятность того, что оба будут шестерками (т. Е. Выпадут `` коробчатые вагоны ''), составит 1/6× 1/6= 1/36.

Но как насчет вероятности броска двух кубиков, при которых хотя бы одна из них - шестерка? Оказывается, мы можем использовать правила отрицания и совпадения и для этого: вероятность того, что хотя бы один кубик окажется на шестерке, равна 1 минус шанс, что ни один из них не приземлится на шестерках, а шанс получить не шестерки - это шанс что у первого не в шесть раз больше шансов, чем у другого. Таким образом, мы получаем 1-5 / 6× 5/6= 11/36. Мы можем вычислить общее правило как

p(E 1 или E 2 ) знак равно 1 - п(не (E 1 или E 2 ))
знак равно 1 - p(не (E 1 ) и не (E 2 ))
знак равно 1 - p(не (E 1 )) × p(не (E 2 ))
знак равно 1 - (1 - p(E 1 )) × (1- p(E 2 ))
знак равно p(E 1 ) + p(E 2 ) - p(E 1 ) × p(E 2 )

Другой пример: каков шанс выпадения 6 на двух d6? Мы видим, что мы можем получить 6 как 1 + 5, 2 + 4, 3 + 3, 4 + 2 и 5 + 1, поэтому в сумме 5 из 36 возможных результатов дают сумму 6, так что вероятность равна 5. / 36. Обратите внимание, что нам нужно считать 1 + 5 и 5 + 1 отдельно, так как есть два способа бросить 1 и 5 на двух d6, в отличие от единственного способа получить две тройки.

В общем, когда вы объединяете несколько кубиков, вы подсчитываете количество способов получить конкретный результат и делите на общее количество бросков, чтобы определить вероятность этого результата. Когда у вас два d6, это сделать несложно, но если у вас, скажем, пять d10, нереально перечислить все исходы и подсчитать те, которые вам нужны. В этих случаях вы либо используете компьютер для перечисления всех возможных бросков и подсчета тех, которые вам нужны, либо вы находите способ подсчета, который не требует явного перечисления всех возможностей, обычно используя структуру броска.

Для простых случаев, таких как шанс выпадения S или более на xdn, некоторые люди вывели формулы, которые не требуют перечисления. Их, однако, часто бывает сложно (и подвержено ошибкам) ​​вычислять вручную, поэтому вы можете также использовать компьютер. Чтобы найти шанс выпадения суммы 15 или более на 3d6, мы можем написать следующую программу (в стиле BASIC, хотя она будет похожа на других языках):

Каждый цикл проходит через все значения одного кубика, поэтому в теле самого внутреннего цикла вы получаете все комбинации всех кубиков. Затем вы подсчитываете те комбинации, которые соответствуют искомому критерию. В конце концов, вы делите это количество на общее количество комбинаций (которое в данном случае составляет 6 3 = 216).

Такие программы нетрудно писать, хотя это становится немного утомительным, если количество игральных костей может измениться, поскольку вам нужно каждый раз изменять программу (или использовать более сложные методы программирования, такие как рекурсивные вызовы процедур или стеки). Чтобы упростить эту задачу, я разработал язык программирования под названием Troll специально для вычисления вероятностей игры в кости. В Troll вы можете написать это как

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

который учитывает только результаты не ниже S. Вы можете найти Troll, включая инструкции и примеры, на http://www.diku.dk/

Среднее, дисперсия и спред

Если вы можете присвоить значение каждому результату, вы можете рассчитать среднее (или среднее) значение как сумму вероятности каждого результата, умноженную на его значение. Точнее, если возможные исходы E 1. E n, а значение результата E i равно V (E i), тогда среднее значение результатов равно p(E 1) × V(E 1) + ··· + p(E n) × V(E n). . Для одного d6, в среднем составляет, следовательно , 1/ 6 × 1 + ··· + 1/ 6 × 6 = 21/ 6 = 3.5. В целом, adn имеет среднее ( n+1) / 2 .

Если вы добавляете несколько кубиков, вы также добавляете их средние значения, так, например, среднее значение xdn равно x× ( n+1) / 2 .

В дополнение к среднему значению результатов и диапазону возможных значений часто бывает интересно узнать, насколько результаты могут быть далеки от среднего. Существуют различные меры этого показателя, самый простой из которых - среднее отклонение, которое представляет собой среднее расстояние от среднего значения. Хотя с концептуальной точки зрения среднее отклонение является простым, с ним трудно работать, поэтому вы часто используете вместо него дисперсиюили спред(также называемые стандартным отклонением). Я не буду вдаваться в подробности того, как они рассчитываются, только отметим, что спред обычно близок (и немного больше) к среднему отклонению, и что дисперсия - это квадрат спреда. Вы можете узнать больше на MathWorld.

Тролль может рассчитать среднее значение, спред и среднее отклонение броска.

Рулоны с открытым концом

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

Простое решение - ограничить количество перемоток до некоторого конечного предела и, следовательно, получить приблизительные ответы (например, это делает Тролль). Но, на самом деле, довольно просто вычислить среднее значение броска с неограниченными повторными прокрутками.

Допустим, у нас есть бросок, который без перебросов имеет среднее значение M 0, что вы получаете переброс с вероятностью p и что при перебросе новый бросок идентичен исходному (включая вероятность дальнейших перебросов) и добавлен сверху. оригинального рулона. Это дает нам рекуррентное соотношение для среднего M открытого рулона: M = M 0 + p * M, которое решает M = M 0 / (1- p) .

Для n-стороннего штампа со значениями x1 . xn , и перебрасывается на xn, это дает M= ( x1 + ··· + xn ) / ( n-1) , где среднее значение без переброса равно ( x1 + ··· + xn ) / n.

В качестве примера возьмем систему пула кубиков из игры White Wolf's World of Darkness. В этой системе вы бросаете d10 и подсчитываете те, которые равны 8 или больше. Кроме того, любая выпадающая 10 добавляет еще один d10, который также перебрасывается на 10 и так далее.

Без рероллов значения равны x1 . хп = 0,0,0,0,0,0,0,1,1,1. Таким образом, среднее значение одного открытого состава штампа является (0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1) / (10-1) = 3/ 9 = 1/ 3 . Если вы бросите N кубиков WoD, в среднем будет N / 3 .

Кривые колокола

Говоря о распределении результатов (например, бросках костей), люди часто используют термин колоколообразная кривая, чтобы обозначить, что распределение выглядит примерно так:

Т.е. напоминает нормальное распределение. Строго говоря, броски игральных костей имеют дискретные распределения вероятностей, т. Е. Распределения отображаются на гистограммы, а не на непрерывные кривые, так что, строго говоря, нельзя говорить о кривых колокола. Кроме того, математики обычно оставляют за собой термин `` колоколообразная кривая '' для нормального (или гауссовского) распределения p (x) = e - x 2, которое является лишь одной из возможных колоколообразных кривых.

С дискретными распределениями вы можете иметь гистограммы, которые имеют приблизительно форму колокола (как, например, классическое распределение 3d6 ниже), и называть их `` кривыми колокола ''.

Многие люди используют `` колоколообразную кривую '' также, когда ссылаются на несимметричные распределения, такие как то, которое вы получаете для суммы трех самых высоких из четырех d6 (как используется при генерации символа d20), хотя такие, строго говоря, не колоколообразные кривые в математических терминах. Я, как и большинство геймеров, буду использовать `` колоколообразную кривую '' в этом широком смысле, но укажу, когда колоколообразные распределения являются несимметричными.

Основное использование колоколообразных кривых в ролевых играх - это генерация атрибутов - поскольку атрибуты `` реального мира '' предположительно подчиняются нормальному распределению, люди хотят, чтобы это было правдой и в игре. Однако это актуально только постольку, поскольку внутриигровые атрибуты линейно переводятся в реальные значения. Хотя это может быть верно для роста, веса и т. Д., Нет никаких указаний на то, что, например, интеллект в игре напрямую преобразуется в IQ (который определяется как нормальное распределение с центром на 100). Вы также можете возразить, что, когда один и тот же человек выполняет одну и ту же задачу неоднократно, распределение результатов похоже на нормальное распределение, поэтому для разрешения действия вам следует использовать броски кубиков в форме колокольчика. Но опять же, это требует, чтобы качество результатов в игре линейно переводилось в некоторый реальный масштаб, что не всегда так.Например, если в игре используется логарифмическая шкала атрибутов или результатов, использование нормального распределения атрибутов кажется неправильным. Я не говорю, что использование колоколообразных кривых - это плохо, но вы не должны использовать их без разбора.

Ближайшие достопримечательности

В следующих парах статей я рассмотрю некоторые распространенные методы броска кости и рассмотрю их свойства.

Сергей Иващенко

08.09.2021

Подписывайтесь на наши социальные сети!