Какой бонус будет наиболее выгоден при броске кубика с 20 гранями?

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

<b>- Подкидыванием двух кубиков с последующим выбором наибольшего результата</b> (при этом выпадение 1 на одном из кубиков не всегда приводит к провалу). Этот бонус может комбинироваться с добавлением фиксированного числа к результату. 

<b>- Добавлением заранее известного числа к результату.</b> 

Каковы формулы для определения наилучшего бонуса или их комбинации в зависимости от заданного порога очков и доступного количества бонусных очков? 

<i>Кстати, я знаком с Python и могу использовать его для реализации решений, если это будет необходимо. Спасибо.</i>
  • 31 марта 2025 г. 11:25
Ответы на вопрос 2
Для решения этой задачи, давайте проанализируем оба варианта получения результата при броске 20-гранного кубика и попробуем определить, какой из них будет более выгодным в зависимости от заданного порога успеха и доступных ресурсов (бонусов).

### Вариант 1: Два броска с выбором наибольшего результата

Когда вы подбрасываете два 20-гранных кубика и выбираете наибольшее значение, вероятность того, что вы получите определённое количество очков зависит от следующей формулы:

1. Вычислите вероятность получить максимум \( k \) при двух бросках:
   \[
   P(\text{макс} \leq k) = P(\text{первый} \leq k) \times P(\text{второй} \leq k) = \left(\frac{k}{20}\right)^2
   \]
   
2. Вероятность того, что максимальный результат больше \( k \):
   \[
   P(\text{макс} > k) = 1 - P(\text{макс} \leq k) = 1 - \left(\frac{k}{20}\right)^2
   \]

Если вы добавите фиксированное число \( b \) к максимальному значению от двух бросков, тогда:
\[
P(\text{макс} + b > k) = 1 - \left(\frac{k - b}{20}\right)^2 \quad \text{(при } k - b > 0 \text{)}
\]

### Вариант 2: Добавление фиксированного бонуса

В этом случае вы просто бросаете один кубик и добавляете к результату фиксированный бонус \( b \):
\[
P(X + b > k) = 1 - P(X + b \leq k) = 1 - \frac{k - b}{20} \quad \text{(при } k - b > 0 \text{)}
\]

### Сравнение

Чтобы определить, какой из методов более выгоден, сравните вероятности:

1. Для варианта с двумя кубиками:
   \[
   P(\text{макс} + b > k) = 1 - \left(\frac{k - b}{20}\right)^2
   \]

2. Для варианта с одним кубиком:
   \[
   P(X + b > k) = 1 - \frac{k - b}{20}
   \]

Сравните оба значения для различных значений \( k \) и \( b \) (где \( b \) — это ваш фиксированный бонус). 

### Пример на Python

Можно также реализовать эту логику на Python, чтобы визуально понять, как изменяются вероятности с различными значениями:

```python
import numpy as np
import matplotlib.pyplot as plt

def prob_double_roll(max_value, b, threshold):
    p_cumulative = (threshold - b) / 20
    return 1 - (p_cumulative ** 2) if p_cumulative > 0 else 0

def prob_single_roll(b, threshold):
    return 1 - (threshold - b) / 20 if (threshold - b) > 0 else 0

threshold = np.arange(1, 21)
bonus = 2  # пример фиксированного бонуса

p_double = [prob_double_roll(20, bonus, k) for k in threshold]
p_single = [prob_single_roll(bonus, k) for k in threshold]

plt.plot(threshold, p_double, label='Два кубика', marker='o')
plt.plot(threshold, p_single, label='Один кубик', marker='o')
plt.axhline(0, color='black', lw=0.5, ls='--')
plt.title('Сравнение вероятностей')
plt.xlabel('Порог успеха')
plt.ylabel('Вероятность')
plt.legend()
plt.grid()
plt.show()
```

### Заключение

Данный анализ и график помогут вам определить, какой из бонусов будет наиболее эффективным в зависимости от ваших требований – порога успеха и доступного бонуса. Таким образом вы сможете принимать более обоснованные решения в контексте вашей игры.
Вам надо подсчитать вероятности успеха. Просто с бонусом все элементарно. Если бонус b, то у вас выпадают очки b+1,b+2,b+3...,b+20 с равной вероятностью. Считаете сколько их больше нужного количества очков m и делите на 20: (20-(m-b)+1)/20. Вот вероятность выиграть с этим бонусом. 

Проблема с двумя кубиками. Тут не сумма, а максимум. Если составить таблицу результатов, например для костей с 3 гарнями, то мы получим вот это:

* 1 2 3
  -----
1|1 2 3
2|2 2 3
3|3 3 3


Т.е. 1 выпадет в 1 исходе, 2 в - в трех, 3 в 5... Для 20-гранных кубиков будет аналогично. i от 1 до 20 выпадет с вероятностью (2i-1)/400.

Какие исходы вам подходят? i+b >= m, т.е i >= m-b.
Итак, для вероятности успеха вам надо проссумировать вероятности всех хороших исходов. Т.е. просуммировать (2i-1)/400 для i от m-b до 20.

Потом взять ту конфигурацию, у которой вероятность выигрыша больше всего.

Формулы выше считают, что m > b. Иначе они не совсем работают и там получается вероятность больше 1. На самом деле она там 1. Так что если есть вариант с бонусом хотя бы нужное количество очков - берите его не раздумывая.
Похожие вопросы