
Пока толстый сохнет, худой сдохнет
Старинная русская поговорка
Недавно хабраюзер @TraPhro опубликовал хорошую статью на тему Санкт-Петербургского парадокса, придуманного когда-то Даниилом Бернулли для иллюстрации фундаментального ограничения классической теории вероятности с точки зрения рисковых решений, принимающихся людьми.
Перед тем, как читать эту статью, рекомендуем ознакомиться с предложенными ссылками, дабы освежить в памяти суть предмета.
Назовем игрой Бернулли следующее. Игрок платит денежную сумму S (серебряных рублей Российской Империи) за игру, после чего подбрасывает честную математическую монетку до тех пор, пока не выпадет решка. Выигрыш игрока составляет , где H - число выпавших подряд орлов.
Легко показать, что матожидание такой игры стремится к бесконечности. С вероятностью 1/2 в последовательности не будет орлов и мы получим за неё 1 рубль. С вероятностью 1/4 выпадет один орел, и это 2 рубля. С вероятностью 1/8 вы получите 4 рубля, и так далее. Матожидание всех этих исходов: 1/2 + 2/4 + 4/8 + ... -> .
Однако вряд ли найдется человек, который согласился бы играть в эту игру даже при S=20.
Какова же справедливая цена игры?
В статье @TraPhro дается одно из возможных разрешений парадокса: через так называемую "Функцию полезности". Предполагается, что люди интуитивно оценивают свой потенциальный выигрыш не линейно, а согласно некой монотонно возрастающей функции со стремящейся к нулю производной. @TraPhro не дает явного выражения для функции полезности, в Википедии же в качестве простейшей модели предлагается логарифмическая функция , где
- выигрыш,
- стоимость игры. Можно показать, и в статье в Википедии показывается, что в этом случае справедливая цена игры S=2.
Логарифмическая функция полезности предполагает, что люди воспринимают приращения или убытки своего капитала не в абсолютных, а в относительных величинах. Радость богача, что ему удалось накопить $10 000 000 в то время, когда год назад у него было всего лишь $1000 000 схожа с радостью не столь обеспеченного человека, наблюдающего увеличение своего капитала с $1000 до $10 000 , хотя в абсолютных величинах прирост капитала миллионера гораздо больше.
Однако всё это - лишь психология. Существует ли строгое математическое обоснование, способное объяснить, каким образом действующие абсолютно рационально экономические агенты могут отказаться играть в игру с бесконечным матожиданием? Может ли быть такое, что подсознательно воспринимаемая нами нелинейная полезность денежных средств - рациональное поведение по управлению рисками?
В данной статье мы обозначим три фундаментальных ограничения, препятствующих росту ставки S и поговорим о рисках, которые разумно и неразумно здесь принять.
Ограничение банка казино
Когда мы играем в игру Бернулли, например, с S=20, мы закладываем в эту игру возможность того, что с очень низким шансом, но всё-таки может случиться так, что игрок выбросит 20 и более орлов подряд, после чего казино окажется должно игроку = 1 048 576 рублей.
Говоря про времена Петра Первого, миллион тогдашних рублей - невообразимая сумма, наверняка значительно превышающая возможности казино. Но даже если бы мы играли на пшеничные зерна, а в обеспечении казино находилась бы вся экономика и вся сельскохозяйственная промышленность мира, из-за экспоненциальной природы выигрыша величина S, при которой банк казино способен гарантировать выплату, не могла бы превысить нескольких десятков.
Таким образом, мы получаем ограничение банка казино.
Здесь K - максимальный выигрыш, который готово выплатить казино, выраженный в денежных единицах, на которые ведется игра. Это небольшое число, двузначное практически при любых мыслимых сценариях.
Готовы сыграть в эту игру при S = 20? Чтобы выйти в плюс, вам нужно всего лишь выкинуть пять орлов подряд, а дальше - экспоненциальный рост вплоть до максимума в миллион с лишним! Кажется выгодной сделкой?
Ограничение длительности игры
Возьмем длинную случайную цепочку B[T] из последовательностей из серии орлов, оканчивающихся решкой. Перед нами больше четырех миллиардов игр Бернулли, случившихся подряд - достойная выборка, на которой должны проявиться все основные статистические эффекты нашей модели.
def generate_B(T, seed=42):
"""
Генерирует массив B длины T (uint8),
где B[i] — число орлов в i-й игре Бернулли.
"""
rng = np.random.default_rng(seed)
B = np.empty(T, dtype=np.uint8)
chunk_size = 2**24
offset = 0
while offset < T:
size = min(chunk_size, T - offset)
B[offset:offset + size] = -np.log2(rng.random(size))
offset += size
return B
Сгенерируем случайную последовательность:
B = generate_B(T) # Генерация идет у меня около 40 секунд
С такой длинной последовательностью у нас возникают проблемы даже при попытке посчитать её среднее арифметическое. Написав что-то вроде
np.mean(2 ** B) # 3.9998945547267795
мы получаем результат, близкий к 4, что совершенно не согласуется с теорией. Проблема в арифметике малых целых чисел. При возведении numpy пытается сохранить тип, что при значениях больше 256 дает ошибку переполнения, которую numpy просто обращает в 0. Отказаться от np.uint8 же мы не хотим; уже при int64 хранение последовательности займет 32 Gb RAM, а оперативная память нынче дорогая.
Нам повезло: если бы мы работали с int32, мы могли бы легко попасться в этом численном эксперименте на ту же ошибку в гораздо более редком сценарии и не заметили бы её.
Правильный путь такой:
B_values, B_counts = np.unique(B, return_counts=True)
B_summ = 0
for i in range(len(B_values)):
B_value = B_values[i]
B_count = B_counts[i]
B_summ += B_count*(2**int(B_value))
B_mean = B_summ/T # 16.525583560578525
Построим гистограмму распределения длин серий орлов:

Видно, что за исключением последовательностей длиной 30, 31, 32, которых нам повезло получить по одной штуке, распределение очень близко к экспоненциальному. Ничего необычного в этом нет: мы убедились, что всё корректно работает.
Откуда берется число B_mean = 16.52 ? Попробуем взять T поменьше:
B_mean | |
|---|---|
32 | 16.52 |
30 | 19.05 |
28 | 13.49 |
26 | 13.80 |
24 | 12.78 |
22 | 11.59 |
20 | 13.76 |
16 | 11.00 |
12 | 5.96 |
Видно, что средний выигрыш "гуляет" где-то в районе , отклоняясь в ту или иную сторону на несколько пунктов при удаче или неудаче игрока. Это легко объяснить математически.
Шанс на выпадение на серии игр события, которое происходит с вероятностью
, составляет всего
. Это событие с высокой вероятностью не выпадет и не внесет свой вклад в общую сумму. Наш статистический аппарат качественно работает с теми событиями, которые выпадают много раз, то есть состоящими из относительно малого числа орлов. Мы видим, что в той серии, где мы бросали
, нам очень повезло, и среднее оказалось аж 19 - но у любого везения есть ограничения, и шансы на получение в такой серии среднего, отклонящегося от половины логарифма экспоненциально падают с ростом этого отклонения.
Таким образом, мы получаем ограничение длительности игры.
Ограничение риска игры
Будем считать банк казино условно-неограниченным. Также будем считать, что агент имеет 0 рублей начального капитала, однако может неограниченно брать кредит под игру.
Промоделируем историю игр 16 агентов, которые играют в одну и ту же ранее сгенерированную цепочку игр B, однако условия по S для них различаются: стоимость игры растет от 1 до 16 рублей. На серии игр в с S>16 игра не выгодна из-за отсечения низковероятных хвостов.
Введем функцию C(S) как максимальный долг банку со стороны агента S за всю историю. Можно воспринимать C(S) как стартовый капитал на игру, при котором агент никогда не уйдет в минус и не будет вынужден брать кредит.
def calc_C(S, B, chunk_size=2**24):
"""
Быстро вычисляет C(S) для массива B (uint8),
обрабатывая данные чанками.
"""
capital = 0
min_capital = 0
T = len(B)
offset = 0
while offset < T:
size = min(chunk_size, T - offset)
# Небольшая оптимизация
cs = np.cumsum((1 << B[offset:offset + size].astype(np.int64)) - S)
local_min = capital + cs.min()
if local_min < min_capital:
min_capital = local_min
capital += cs[-1]
offset += size
return -min_capital
C_values = []
S_values = np.arange(1, 17)
for S in S_values:
C = calc_C(S, B)
C_values.append(C)

При C(S) не зависит от длины последовательности T, поскольку агент с высокой долей вероятности либо сливается в начале игры, либо ему удается заработать достаточный капитал, чтобы уверенно чувствовать себя при заданном S всю дальнейшую игру.
Видно, что максимальная сумма риска агента в игре Бернулли растёт экспоненциально с ростом стоимости игры. Причина в том, что компенсация линейного дрейфа возможна только за счёт экспоненциально редких событий, и ожидание таких событий требует экспоненциального же стартового капитала.
Характер экспоненциального роста близок к где R - коэффициент где-то от 0 до 1.

Таким образом, мы получаем ограничение риска игры.
Коэффициент риска R подбирается исходя из готовности игрока рисковать. Можно предположить R=0.5.
Откуда берется 4 в основании логарифма?
Типичный сценарий выживания игрока подразумевает каскад редких событий, до которых он стремится дожить, растрачивая капитал за счет S и лишь частично компенсируя дрейф в полной мере за счет частых событий. К примеру, если S = 10, то для выживания игроку нужно дождаться хотя бы одного события один-на-миллион с двадцатью и более орлами. В противном случае, матожидание прибыли от более част��х событий не перекрывает дрейф S. Среднее время ожидания для такого события:
Во время ожидания капитал игрока будет тратиться, в среднем, со скоростью 0.5 (более частые, но не спасающие игрока в полной мере события вроде 19 орлов он, вероятно, дождется).
Значит, для выживания необходимо, что бы выполнялось
, что дает нам R = 0.5 и степень, равную 4. Однако спасительное событие может прийти раньше или позже намеченного срока, что заставляет нас в некоторых случаях калибровать R в ту или иную сторону.
Управление рисками
Мы получили три независимых фундаментальных ограничения на ставку S:
Ограничение банка:
(зависит от размера банка казино)
Ограничение времени:
(зависит от числа игр, в которых мы готовы участвовать)
Ограничение риска:
(зависит от начального капитала игрока и его склонности рисковать)
Эти ограничения распространяются куда шире игры Бернулли.
Первое ограничение учит нас, что никакой рост не может быть экспоненциальным бесконечно или даже в течение длительного промежутка времени. Рано или поздно ресурс, поддерживающий рост, иссякнет и произойдет выход на плато. Это особенно актуально сейчас, в начале 2026 года, в период технологического бума LLM, когда кажется, что экспоненциальное развитие экономики ИИ не ограничено. Это актуально и для любого другого технологического пузыря, порожденного технологией с огромным, сложно обозримым потенциалом.
Второе ограничение говорит нам, что нельзя достичь успеха, ожидая редчайших событий. Даже очень редкие события должны происходить более-менее регулярно на обозримом горизонте планирования. Иначе мы рискуем просто не дождаться.
Третье ограничение - самое интересное. Для его иллюстрации взглянем ещё раз на пример из исходной статьи.
Богатый шоумен MrBeast, желая развлечь свою аудиторию, предлагает случайному обывателю выбор: получить $1 000 000 с шансом 100% либо в десять раз больше, но с шансом в 50%. С точки зрения матожидания следует рисковать. Однако многие предпочтут забрать гарантированную сумму.
Закон убывающей полезности говорит нам, что для среднего обывателя как $1 000 000, так и $10 000 000 - огромные, плохо различимые в своей огромности суммы, на которые он может полностью обеспечить свои потребности на текущий момент. Но здесь есть что-то более глубокое.
Предположим, что наш счастливчик, оказавшись на шаге от $1 000 000 , обладал до встречи MrBeast совокупным капиталом в $500 000 , куда включается всё его имущество от трусов до бабушкиной квартиры. MrBeast не раздает людя�� просто так большие деньги -- они должны служить интересам его шоу -- значит наш герой прошел уже через многое, дабы послужить интересам шоу MrBeast. К моменту, когда нашего героя ставят перед выбором, его виртуальный капитал составляет не $500 000 а $1 500 000 , поскольку он как бы уже "заработал" своей удачей и ловкостью свой приз. В этой ситуации ему требуется рискнуть 2/3 своего капитала.
Это плохой риск; многие инвестфонды не решились бы на это точно так же, как и наш герой. Экономисты фонда сказали бы что-то про установленный потолок инвестиций в рисковый проект. Аналогично мы видим в игре Бернулли, что в некоторых ситуациях глупо инвестировать в рисковую игру, если не располагаешь достаточными капиталами, чтобы выдержать этот риск.
Рассмотрим другой пример, когда тот же самый обыватель выиграл либо $100 либо право побороться с шансом в 50% за $1000 - в этом случае многие предпочли бы журавля синице, поскольку $100 для человека с капиталом в $500 000 - куда менее чувствительная сумма.
Психология обывателя здесь работает через закон убывающей полезности именно потому, что у нас довольно умное, прокаченное миллиардами лет эволюции подсознание, которое хорошо разбирается в рисках.
Не следует думать, что игра Бернулли - абстрактный, оторванный от жизни пример. Инвестфонды, инвестируя в сотни стартапов в надежде получить прибыль с нескольких, которые отобьют все затраты, играют в существенно усложненную версию игры Бернулли.
В классической теории инвестиций Келли ставка рассчитывается из общего банка игрока. Данная теория рассматривает ставку как долю от банка игрока; эта доля рассчитывается из оценок события со стороны игрока и со стороны биржи. Теория Келли хороша, но по сюжету Бернулли видно, что она не так уж хорошо работает со сценариями, когда мы обрабатываем редкие шансы.
Мы получили наш результат - логарифмический закон соотношения рисковой ставки с капиталом - через численный эксперимент. Можно ли построить строгое математическое обоснование нашей модели? Оказывается, да!
Непрерывная игра Бернулли
Пусть есть случайная величина, распределенная по закону где L - некий фиксированный параметр. Предложим игроку заплатить S рублей и сгенерировать число по этому закону; в этом случае он получит
выигрыша.
Оказывается, распределение выигрыша не зависит от L:
Отсюда:
,
но хвост настолько тяжёлый, что средне�� неинформативно.
Мы получили непрерывный аналог Санкт-Петербургской игры.
Рассмотрим процесс, в котором ты раз за разом меняешь величину своего капитала , играя в эту игру.
где - выигрыш.
Ты желаешь никогда не достичь состояния банкротства . Каков максимальный S, при котором вероятность разорения за разумное время мала?
Закон допустимого риска
Из хвоста:
Вероятность получить выигрыш :
Чтобы компенсировать потери порядка , нужен выигрыш:
Вероятность дождаться его:
Среднее время ожидания:
Мы теряем капитал со скоростью . Наш запас прочности — время
. Чтобы выжить, нам нужно, чтобы за это время случилось крупное событие, перекрывающее убытки. Вероятность такого события
Отсюда:
Почему это не психологический феномен, а закон природы процесса?
Потому что:
распределение выигрышей — степенное;
капитал — конечен;
разорение — поглощающее состояние;
большие выигрыши редки экспоненциально;
дожить до них можно только с логарифмически растущим капиталом.
А значит, мы приходим к главной формуле для любой игры Бернулли:
Риск должен быть долей логарифма капитала.
Вот чему учит нас Санкт-Петербургский парадокс.
