Сразу предупрежу, что это статья не про программирование. Она про некоторые аспекты комбинаторики и теории вероятностей.
Почему эта статья вообще возникла:
Люблю я смотреть одного ютубера, нравится мне он очень. И вот, давеча, мы час в прямом эфире сейвскамом пытались выбить из контейнера айтем с наилучшими характеристиками. Ему всё не везло и не везло, и через какое-то время он начал рассказывать, что ему скоро должно повезти, потому что вероятность того, что ему будет не везти так долго — становится всё более абсурдно невозможной. Мы с частью чата пытались его переубедить, но у нас что-то не получилось… Потому что его аргументы, должен признать, звучали убедительно… На тот момент… А потом я провёл некоторые вычисления, и всё встало на свои места. Итак, давайте же разберёмся.
Дисклеймер:
В данной статье мы будем рассматривать идеальные сферические случаи в вакууме. То есть мы не будем учитывать трение воздуха, импульсы, изначальное положение монетки. А сундук (т.к. речь идёт про сейвскам) не помнит о том, что он генерировал до этого. И предположим для удобства, что шанс каждого варианта айтема равнозначен.
Про ситуации, когда шансы улучшаются с каждой новой попыткой весьма интересно рассказал комментатор @Mak2023Es, предлагаю ознакомиться
Для начала, немного терминологии:
В комбинаторике задачи вроде
-
Сколько возможных уникальных комбинаций четырёхзначного пин-кода можно получить, имея циферблат с 10-ю цифрами
-
Сколько возможных последовательностей из 20 элементов можно получить, бросая кубик или монетку
относятся к категории «Размещение с повторением». У этой категории есть два условия:
-
Порядок важен (123 и 132 — это разные комбинации)
-
Элементы могут повторяться (то есть если нам выпала шестёрка — это не значит, что шестёрка нам больше в этой последовательности не упадёт, но так же и не значит, что она ну уж точно обязана выпасть ну хотя бы ещё разочек)
Как это всё считается:
Если мы хотим посчитать количество возможных комбинаций, то мы берём количество вариантов значения в одном элементе последовательности (например, кубик может нам выдать 6 значений, а монетка 2), и умножаем на себя столько раз, сколько элементов в последовательности. То есть возводим в степень. Таким образом, если у нас на циферблате 10 цифр, то можно составить 10^4 уникальных четырёхзначных комбинаций.
Если же нас интересует вероятность конкретной комбинации — то мы делаем то же самое, но возводим в степень не количество вариантов, а шанс конкретного. Шанс того, что кубик выдаст тройку — 1/6, шанс получить орла — 1/2. Таким образом, вероятность получить последовательность из трёх орлов равна 0.5^3 == 0.125
С теорией закончили, вернёмся к монетке.
Вообще, уже давно все математики говорят, что вероятность события не учитывает контекст прошлых событий. Вселенная не осаживает везунчиков и не жалеет неудачников. Когда мы бросаем монетку — у нас всегда шанс 50/50. А вот это вот всё «ну не может 6 раз подряд выпасть орёл, и на седьмой раз тоже орёл» — это исключительно наше когнитивное искажение, ибо мы привыкли во всём искать закономерности. Но такие объяснения мало кого проймут. Так в чём же фундаментальная ошибка такого мышления? Давайте на примере.
Вот мы бросили 5 раз монетку, и 5 раз нам выпала решка (будем обозначать буквой Р). То есть у нас есть комбинация РРР РР. Вероятность такой комбинации — 0.5^5 == 0.03125
Мы собираемся бросить монетку ещё раз, и мы ТОЧНО УВЕРЕНЫ, что НУ ШЕСТОЙ раз решка ТОЧНО НЕ выпадет. Потому что это уже последовательность РРР РРР, вероятность которой — 0.5^6 == 0.015625. Ну меньше же, ну! Поэтому мы ожидаем орла (будем обозначать буквой О).
А теперь внимательно следим за руками: РРР РРО — это точно такая же последовательность, и для неё точно так же просчитывается вероятность:
0.5^5 (5 Р подряд) * 0.5 (а вот это уже О). И что мы получаем? Мы получаем всё те же 0.5^6.
Итак, вероятность РРР РРР (0.5^6) == РРР РРО (0.5^6), а значит — и правда, каждый бросок монетки имеет шанс 50/50 вне зависимости от того, что выпадало раньше. Монетка — не git, она ничего не помнит.
Но дальше только хуже. До примеров с монеткой мы всем стримом скатились, когда пытались пояснить друг другу за вероятности. Аргументы ютубера звучали довольно убедительно, потому что он оперировал, скорее, не вероятностью сиюминутного «броска», а не-вероятностью последовательности из, ну, не соврать, сотни неудач подряд. Но в чём же проблема?
А проблема в том, что мы просто не любим считать. Вот есть у нас сундук, из которого мы хотим вытащить что-то хорошее. Это для нас успех. А всё не хорошее — это для нас провал. Наш мозг всё упрощает и низводит всё до монетки: мы можем либо преуспеть, либо провалиться. А значит, шансы близки к 50/50. Умом-то мы понимаем, что это не так, но задумываться как-то не приходится.
Давайте на примере.
Дело было с киберпанком и попыткой вытащить оружие уровня 5++ с двумя пустыми дырками под модификации. Что мы имеем:
Оружие может выпасть одного из следующих уровней:
-
4
-
4+
-
4++
-
5
-
5+
-
5++
Конфигурация дырок может быть одной из следующих:
-
0 дырок
-
1 дырка
-
1 дырка, но она занята
-
2 дырки
-
2 дырки, но одна занята
-
2 дырки, но они обе заняты.
Очевидно, что результирующее оружие — это комбинация этих двух аспектов. Итого, мы на выходе получаем 6 * 6 == 36 вариантов того, что может выпасть. Из них нас интересует только 1
Это значит, что шанс успеха у нас — 1/36 — 0.0277777(…)
А все остальные варианты, какими бы они ни были — нам не подходят, и считаются провалом. Следовательно, вероятность провала == 1 — 1/36 == 35/36 == 0.9722222(…)
Заметили, в чём подвох? Даже не близко к 50/50. Но дальше ещё круче.
Почему же принцип «если мне столько раз не везло, то вот сейчас вот НУ ТОЧНО повезёт» не работает, и почему с такой установкой в казино вам нельзя идти ни в коем случае:
Ещё раз отмечу, что шанс того, что из 20 бросков 20-ый даст вам ровно тот результат, который вы хотите — всё так же составляет 1/36.
Но если же вы мыслите «раз столько раз не везло, то сейчас точно повезёт» — вы, фактически, рассматриваете вероятность того, что у вас в итое получится комбинация из 19 неудач и после неё 1-й удачи. То есть мы говорим уже не о вероятности броска, а о вероятности комбинации.
Что такое «мне не везло, а потом повезло» с точки зрения комбинаторики?
Пусть Н — «не повезло», а П — «Повезло».
Если нам повезло с первого раза — наша последовательность — П
Если нам не повезло, а потом повезло — НП
Повезло только с третьего раза — ННП
С шестого — ННН ННП
Заметили?
Вот вероятности:
|
Последовательность |
Формула |
Умножаем |
Раскрываем скобки |
десятичная дробь |
|
П |
1/36 |
|
|
0.027777778 |
|
НП |
35/36 * 1/36 |
35/(36^2) |
35/1296 |
0.027006173 |
|
ННП |
(35/36)^2 * 1/36 |
(35^2)/(36^3) |
1225/46656 |
0.026256001 |
|
ННН ННП |
(35/36)^5 * 1/36 |
(35^5)/(36^6) |
52521875/2176782336 |
0.024128216 |
А вот, для сравнения, вероятности полностью провальных серий:
|
Последовательность |
Формула |
Десятичная дробь |
|
Н |
35/36 |
0.972222222 |
|
НН |
(35/36)^2 |
0.945216049 |
|
ННН |
(35/36)^3 |
0.918960048 |
|
ННН ННН |
(35/36)^6 |
0.84448757 |
Заметили? Хоть шансы серии провалов и падают, но шансы успеха «не везло, не везло, и вот, наконец, повезло» ТОЖЕ ПАДАЮТ!
Я тут немножко повозился с html и js и нарисовал график. Заранее извиняюсь за красоту, но я бэкендер, мне можно 😀
Цена деления по-вертикали — 5%,
по-горизонтали — 1 итерация (оно же — количество элементов в последовательности)
В принципе, я прогнал 500 итераций, и получил под конец вот такое:

Как видно, чем больше мы «играем» в эту рулетку — тем меньше наши шансы на победу. Технически, при каждом новом «броске» шансы у нас одинаковые, но вот шанс на последовательность «не везло всё это время, и вот, наконец, свезло» — падают. Да, на серию проигрышей шансы тоже уменьшаются, но они всё равно сильно выше.
В общем, я надеюсь, у меня получилось и себе и вам объяснить, почему этот обман мозга на самом деле не имеет ничего общего с действительностью, и как правильно считать вероятности провала, когда провальных вариантов больше, чем один.
P.S.: В комментариях весьма интересные и солидные люди, не пренебрегайте прочтением :3
ссылка на оригинал статьи https://habr.com/ru/articles/774018/
Добавить комментарий