Эрик Онлайн

Мастер на все руки, ни в чем не мастер, хотя иногда лучше, чем в своем деле.

Математический анализ взрывающихся игральных костей 22 марта 2009 г.

Полагаю, ваше внимание привлекло название? Я написал это эссе некоторое время назад, но решил не публиковать его, пока не верну шнур питания. Итак ... начнем:

При обычном броске кубика результат будет 1, 2, 3, 4, 5 или 6. Позже это будет обобщено на N-сторонние игральные кости, но пока будет достаточно стандартного шестигранного разнообразия. В некоторых играх (обычно тактических играх в кости) используется система, называемая «взрывающиеся кости». В этой системе прокатка на матрице максимального значения позволяет ролику снова прокатывать матрицу и добавлять новый результат к предыдущему. Обычно нет ограничений на количество рероллов.

Например, игрок выбрасывает шестерку. Он перебрасывает кубик, который снова выпадает на шесть. Еще раз он бросает, но на этот раз получает двойку. Его окончательный результат для этого броска - четырнадцать, хотя кубик имеет только шесть граней.

Проще говоря, ожидаемое значение - это то, каким был бы средний результат эксперимента, если бы его попробовали бесконечное количество раз. Например, если подбрасывание монеты стоило одно очко, если выпадал орел, и два очка за решку, ожидаемое значение будет 1,5, так как орел и решка равновероятны.

Чтобы вычислить ожидаемое значение, берется сумма каждой возможности, умноженная на ее соответствующий шанс. Для примера с подбрасыванием монеты это будет. То есть 50% шанс получить 1 очко плюс 50% шанс 2 очка.

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

Первым делом нужно будет найти выкройку. Вот быстрое сравнение значений и их соответствующих вероятностей:

х, Pr (x)

1, 1/6

2, 1/6

3, 1/6

4, 1/6

5, 1/6

7, 1/36

8, 1/36

9, 1/36

10, 1 / 36

11, 1/36

13, 1/216

14, 1/216

Итак, как их можно объединить в элегантную формулу? В первую очередь будет использоваться простая сумма произведений:

Множители, предшествующие каждой сумме, являются степенями шести, поэтому их можно объединить во вложенную сумму:

Каждая сумма, например, равна среднему значению, умноженному на количество элементов. Количество элементов остается постоянным 5, но среднее значение увеличивается на 6 для каждой последующей суммы, начиная со значения 3. Формулу теперь можно переписать следующим образом:

Упростив некоторые продукты, формулу можно еще раз переписать:

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

Шесть исключена из всех терминов:

Эту новую формулу можно переписать в системе суммирования:

Для каждого добавленного члена наша ошибка будет уменьшена в 6 раз, поэтому всего несколько терминов вернут очень точный результат:

N, сумма к N0, 2,5

1, 3,75

2, 4,0972222

3, 4,178240741

4, 4,194058642

5, 4,197595165

Сумма стремительно приближается к точному значению 4,2, но каково отношение этого значения к обычно ожидаемому значению шестигранной кости?

Добавление модификатора взрыва к шестигранному кубику изменяет его ожидаемое значение в раз. То есть отношение количества сторон на матрице к количеству сторон, которые не «взрываются».

Я выполнил те же вычисления на четырех- и восьмиугольной кости, чтобы сравнить результаты, и форумла верна.

Для любого N-стороннего кубика, пронумерованного от 1 до N, со всеми сторонами равновероятно, модификатор взрыва увеличит ожидаемое значение кубика в раз.

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

Это эссе было написано Эриком Доббсом, студентом факультета информатики Университета Теннесси в Ноксвилле. С ним можно связаться по адресу erictdobbs -at- gmail -dot- com.

Поделись этим:

Нравится:

Связанный

Комментарии"

Сеттинг кампании Pathfinder Chronicles устанавливает некоторые жесткие ограничения для пользователей огнестрельного оружия, в том числе вероятность дать осечку, необходимость иметь особое умение, штрафы для существ разного размера и непристойную стоимость входа. Тот факт, что это оружие наносит взрывной урон, может компенсировать это, но, судя по этому анализу, особой разницы нет.

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

Спасибо за комментарий, Джонни.

Есть простой способ определить, насколько легко результат может взорваться. При d6 у вас один шанс из шести получить что-нибудь больше 6; если вы выбросите естественную шестерку (один шанс из шести), вы добавите еще один бросок.

Вероятность того, что он взорвется во второй раз, составляет еще один из шести, поэтому шанс выпадения выше 12 составляет один из шести во второй степени или один из тридцати шести.

Таким образом, вероятность выпадения на dN выше, чем x * N, равна N ^ (- x).

[…] Тогда мне пришла в голову блестящая идея поискать в Интернете. И я нашел Эрика, который провел настоящий математический анализ взрывающихся игральных костей. Намного лучше, чем моя слабая попытка. Мне почти хотелось от стыда порвать все свои расчеты. Его […]

Спасибо за отличное эссе!

Я возился с быстрорастущей системой, основанной на монетах (орды считаются «попаданиями», а также получают одну перебросу), и вы значительно упростили для меня определение целевых чисел.

[…] Хотел бы начать с некоторых данных, а затем найти закономерность. Здесь также будет использоваться ожидаемое значение, так что освежите его, если вам нужно […]

В надежде, что автор по-прежнему активен ... У меня вопрос по этому поводу, как, если система, в которой вы играете, построена таким образом, что вы, если вы выбросите 6, должны поднять ее, добавить еще один кубик и бросить их вместе, и если какой-либо из это шестерка, над которой вы делаете то же самое, тогда ценность двух кубиков может быть ниже, чем у ваших первых шести, как бы вы тогда вычислили средний результат броска трех кубиков? Я сам подсчитал, что это 10,66666, но я скептически отношусь к этому, потому что это очень близко к «нормальному» среднему значению 10,5.

Спасибо за вопрос, Майкл.

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

Я на правильном пути? Я посмотрю, смогу ли я когда-нибудь придумать ответ, но дайте мне знать, есть ли у вас какая-то другая система для того, как это работает.

Да, это так, как это работает, количество кубиков, которые вы бросаете в начале, зависит от сложности задачи, но обычно это 3D6. И, как вы говорите, если вы выбрасываете шестерку, вы поднимаете ее, бросаете 2 кубика и так далее.

Но я думаю, что самый простой - это вычислить для одной кости и умножить ее на 3. Спасибо за помощь 🙂

[…] Означало, что в моем обсуждении Dice, чтобы объяснить, почему я не люблю взрывающиеся кости, у меня было это предубеждение с тех пор, как я впервые столкнулся с ним в правилах огнестрельного оружия AD&D 2nd […]

Я надеюсь, что автор по-прежнему активен и сможет ответить на мой вопрос.

Если при использовании 6-гранного кубика все единицы будут переброшены, как это повлияет на результат взрывающихся кубиков? И каково теперь будет среднее значение для каждого кубика?

Спасибо за вопрос. Я попытался быстро пересчитать вещи, перебросив только 1, и результаты довольно впечатляющие:

Это вообще не меняет ожидаемого значения!

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

Вряд ли это доказательство, но я сейчас тороплюсь, поэтому эта ссылка пока будет служить объяснением: http://tinyurl.com/3e5tsrc

Итак, что бы сказали «взрывающиеся» отношения, если бы:

Кубики по-прежнему «взрываются» при броске шести, но, кроме того, все единицы были переброшены, но не учитывались в сумме броска. В частности, я имею в виду «Жестокую» механику 4E.

Например, игрок выбрасывает шестерку. Он перебрасывает кубик, который снова выпадает на шесть. Еще раз он бросает, но на этот раз получает один. Затем он снова бросает двойку. Его окончательный результат - четырнадцать (6 + 6 + 2), не считая 1, который является перебросом, но не учитывается в сумме.

(Как) Это связано со стандартным броском кубика?

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

Я могу более подробно остановиться на этой проблеме, если позволит время, в ближайшем будущем. Спасибо за комментарий!

Что произойдет с кубиками Fudge? Рассмотрим два сценария:

1) Неотмененные фадж-позитивы взрываются. Вероятности -4, -3, -2, -1 и ноль должны оставаться неизменными, верно? А как насчет правой части распределения?

2) Все позитивы взрываются. У меня нет интуиции относительно того, что произойдет.

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

На 1) вероятности для некоторых значений кажутся одинаковыми, но ноль становится БОЛЕЕ вероятным. Рассмотрите возможность получения -1, +1, +1 и +1. Ваша чистая стоимость 2 означает 2 взрывающихся кубика и шанс 1/3 ^ 2 снова упасть до нуля! (Предполагается, что я понимаю, как работает эта система; я прочитал ее довольно быстро и думаю, что у меня есть представление о ней).

Что касается 2), я _ думаю_, что это ничего не изменит в ожидаемом значении. Независимо от того, какие числа растут, математическое ожидание этой системы равно нулю. Даже если положительные значения стремительно растут, у вас также есть шанс получить отрицательные. Конечно, это означает, что у вас мало шансов получить высокие результаты, но у вас также есть более высокий шанс немного снизить свою ценность.

Ах, мне жаль, что у меня не было больше времени, чтобы вычислить цифры и посмотреть точные значения для 1)… Извините, я не могу дать вам более вдумчивого ответа, чем этот прямо сейчас, но спасибо за вопрос!

Спасибо за ответ, Эрик. Я посмотрю, смогу ли я написать сценарий для моделирования обоих случаев 1 и 2 и построить графики распределения.

def reroll (seed):

roll = randint (-1,1)

if roll == 1: seed = reroll (seed + roll)

return (seed)

y = [(randint (-1,1), randint (-1, 1), randint (-1,1), randint (-1,1)) для i в диапазоне (temptemp)]

z = dict ((x, 0) для x в диапазоне (-5,20))

для квартета в y:

current = sum (квартет)

foobar = current

while foobar>0:

current = current + reroll (0)

foobar- = 1

try: z [current] + = 1

за исключением: pass

summer = 0

для i в диапазоне (-5 , 20):

print (i, '>>', z [i])

лето + = i * z [i]

print ('mean =', summer / temptemp)

def reroll (seed):

roll = randint (-1,1)

if roll == 1: seed = reroll (seed + roll)

return (seed)

y = [(randint (-1,1), randint (-1, 1), randint (-1,1), randint (-1,1)) для i в диапазоне (1000000)]

z = dict ((x, 0) для x в диапазоне (-5,20))

для квартета в y:

current = sum (квартет)

для i в квартете:

if i == 1: current = current + reroll (0)

попробуйте: z [current] + = 1

за исключением: pass

summer = 0

для i в диапазоне (-5, 20):

print (i, '>>', z [i])

лето + = i * z [i]

print ('mean =', summer / 1000000)