Разорение игрока

Почему даже в честной игре против богатого соперника разорение почти неизбежно.

Задача о разорении игрока изучает случайное блуждание капитала между нулём и целью: с какой вероятностью игрок разбогатеет раньше, чем обанкротится.

Игрок начинает с капиталом $i$ и в каждом раунде выигрывает рубль с вероятностью $p$ или теряет рубль с вероятностью $1-p$. Игра идёт, пока он не достигнет цели $N$ или не разорится в ноль. Эта простая модель объясняет, почему казино всегда в плюсе, и лежит в основе теории случайных блужданий. Сценарий знаком каждому, кто хоть раз слышал фразу «отыграюсь». Игрок с небольшим капиталом садится против заведения с практически бесконечными деньгами и ставит цель — удвоиться, утроиться, сорвать куш. Кажется, что при честной игре шансы дойти до цели или разориться равны. На деле всё решает соотношение капиталов: чем больше цель относительно старта, тем вероятнее разорение, даже когда каждая отдельная ставка абсолютно справедлива. А стоит добавить малейший перевес в пользу заведения — и разорение становится почти неотвратимым. Разберём обе ситуации количественно, и математика объяснит, почему стратегия «играть, пока не отыграюсь» обречена.

Честная игра

Пусть игра справедлива: $p=\frac{1}{2}$. Тогда вероятность достичь цели $N$, стартуя с $i$, удивительно проста:

$$P(\text{достичь } N)=\frac{i}{N}.$$

Стартуя с 10 рублей при цели 100, шанс разбогатеть — лишь $\frac{10}{100}=0{,}1$. То есть в честной игре против цели, которая в 10 раз больше старта, вы разоритесь в $90\%$ случаев. Проверим симуляцией.

import random
random.seed(23)

def gambler(i, N, p):
    money = i
    while 0 < money < N:
        money += 1 if random.random() < p else -1
    return money == N

N_runs = 200000
start, goal = 10, 100
wins = sum(gambler(start, goal, 0.5) for _ in range(N_runs)) / N_runs
print("P(достичь цели):", round(wins, 4))
print("Теория i/N:    ", start / goal)

Вывод:

P(достичь цели): 0.0998
Теория i/N:     0.1

Нечестная игра

В казино $p\lt\frac{1}{2}$ (есть преимущество заведения). Тогда вероятность достичь цели падает экспоненциально:

$$P(\text{достичь } N)=\frac{1-r^{i}}{1-r^{N}},\qquad r=\frac{1-p}{p}.$$

Даже крошечный перевес против игрока (скажем, $p=0{,}49$) при большой цели делает выигрыш почти невозможным. Проверим при $p=0{,}49$, старте 10 и цели 100: формула даёт около $0{,}0092$.

import random
random.seed(24)

def gambler(i, N, p):
    money = i
    while 0 < money < N:
        money += 1 if random.random() < p else -1
    return money == N

p = 0.49
r = (1 - p) / p
theory = (1 - r**10) / (1 - r**100)
N_runs = 200000
wins = sum(gambler(10, 100, p) for _ in range(N_runs)) / N_runs
print("P(достичь цели):", round(wins, 4))
print("Теория:        ", round(theory, 4))

Вывод:

P(достичь цели): 0.0089
Теория:         0.0092

Перевес всего в $1\%$ обрушил шанс выигрыша с $10\%$ до менее $1\%$. Вот математическая причина, по которой «отыграться» в казино — плохая идея.

Как работает под капотом

Симуляция реализует капитал как одномерное случайное блуждание: на каждом шаге $\pm 1$, цикл идёт, пока не достигнута граница 0 или $N$. Возвращаемое money == N отвечает на вопрос «дошёл ли до цели». Усреднение по тысячам партий даёт эмпирическую вероятность, которая совпадает с формулами — и для честной игры (линейная $i/N$), и для нечестной (экспоненциальная по $r$). Никаких формул код не использует: он просто играет партии до конца.

Частые ошибки

Первая ошибка — верить, что в честной игре можно «пересидеть» и почти наверняка достичь любой цели: вероятность строго $i/N$, и против большой цели она мала. Вторая — недооценивать влияние малого перевеса казино: эффект экспоненциальный, а не линейный. Третья — путать «вероятность разорения» с «ожидаемым временем игры»: даже когда разорение почти неизбежно, до него можно играть очень долго — это отдельная характеристика.

Итог

  • В честной игре вероятность достичь цели $N$ из $i$ равна $i/N$.
  • Против большой цели разорение почти неизбежно даже при честной игре.
  • Малый перевес казино снижает шанс выигрыша экспоненциально.
  • Капитал игрока — это случайное блуждание с поглощающими границами.
Проверьте себя
1. В честной игре (p=0,5) какова вероятность дойти от 10 до 100 рублей?
A0,5
B0,1
C0,9
D0,01
2. Как малый перевес казино влияет на шанс выигрыша при большой цели?
AЛинейно снижает
BЭкспоненциально снижает почти до нуля
CНе влияет
DПовышает шанс
3. Чем является капитал игрока в этой модели?
AНормальным распределением
BСлучайным блужданием с поглощающими границами
CБиномиальным коэффициентом
DПуассоновским потоком