Математические основы программы

Что мы имеем при игре в покер? У нас есть некоторое количество сдач, которые в терминах теории вероятности можно назвать испытаниями. В каждой из сдач может произойти то или иное случайное событие, например, нам сдадут два туза, на столе будет лежать готовый флэш, наша префлоп пара улучшится до сета. Нам известны теоретические вероятности осуществления того или иного события (см. статью). Если наше случайное событие происходит, то наше испытание считается удачным, если нет - неудачным. При бесконечном количестве испытаний количество удачных событий будет стремиться к (количество испытаний) * (вероятность осуществления события), то есть к величине математического ожидания события. В условиях ограниченного количества испытаний фактическое количество успехов будет отличаться от матожидания, причем чем меньше испытаний, тем больше разброс. Существует так называемая формула Бернулли, позволяющая оценить вероятность того, что при N испытаниях с вероятностью успеха p количество успехов будет равно n:

 

Правда, нас мало интересует вероятность того, что у нас будет именно n успехов (это будет какое-то очень маленькое число, ведь это всего один исход из десятков и сотен возможных). Нам скорее интересно, какова вероятность того, что количество успехов будет меньше (больше) чем n. Чтобы узнать эту вероятность надо сложить вероятности для всех возможных количеств успехов меньше (больше) или равных n. В результате мы придем к биноминальному распределению, которое как раз и дает интересующую нас вероятность. Для вычисления в лоб задача слабореальная, но есть упрощенные методы, дающие хорошие результаты. Могу сказать, что "побаловаться" с биномиальным распределением можно в Excele при помощи функции БИНОМРАСП. В программе реализован аналог этой функции, дающий точно такие же результаты.

Замечу, что биноминальное распределение может использоваться не только в покере, а в большинстве азартных игр (да и просто в жизни). Если у нас есть некоторое количество испытаний с известным матожиданием события, мы можем оценить вероятность того, что наше событие произойдет определенное количество раз. Ряд примеров из других игр на применение биноминального распределения: за 100 спинов на рулетке выпало 6 зеро (вероятность выпадения зеро 2,7%), из 50 игр в блэкджек проиграли 35 (вероятность проигрыша 49%), из 25 удвоений в видеопокер проиграли 18 (вероятность проигрыша без учета ничьих 50%) - какова вероятность таких событий при честной игре? Введя указанные цифры на закладке "Разное", легко можно увидеть, что вероятности составят 1,9%, 0,08%, 0,73%. Как видим, все вероятности довольно низкие, вполне можно сказать, что блэкджек оказался "заряжен", да и другие результаты довольно маловероятны при честной игре.

Кроме качества работы ГСЧ покер-рума, который мы по большому счету и оцениваем при помощи биноминального распределения, игроков весьма будут интересовать собственно денежные результаты игры - ожидаемая величина выигрыша, возможные проигрыши и т.д. Poker Tracker предлагает два основных параметра, по которым сделать необходимы расчеты, это средний выигрыш на 100 сдач (winrate, BB) и среднеквадратичное отклонение (standard deviation, BB). Первый из параметров берем на закладке Трекера "General Info" - столбец "BB/100 Hands", второй - жмем кнопку "More Detail..." на закладке "Session Notes" строчка "Standard Deviaiton/100 Hands". Хочу заметить, что в принципе правильнее будет брать параметры отдельно по коротким и длинным столам, лимиту/безлимиту, а также отдельно по разным лимитам. Дело в том, что с длиной стола изменяется СКО, а при восхождении на новые лимиты обычно повышается уровень противников и как следствие уменьшается средний выигрыш. То есть анализировать результаты по разным лимитам и видам игры не очень эффективно - это будет усреднение, применимое непонятно к какой игре.

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

 

где a - матожидание, строчной греческой буквой "сигма" обозначается среднеквадратичное отклонение, а сигма в квадрате известна как дисперсия. В Excele для работы с нормальным распределением можно использовать функцию НОРМРАСП.

Мы знаем, что наши результаты должны подчиняться нормальному закону распределения, но точные значения матожидания и СКО нам не известны, у нас есть только расчетные, а значит оценочные значения среднего выигрыша и СКО. Реальные значения матожидания и СКО будут лежать в некотором диапазоне, который мы можем рассчитать, задав вероятность нахождения величины в заданном диапазоне (так называемый доверительный интервал). Например, мы хотим найти диапазон, в котором будет лежать наше матожидание с вероятностью 99%. Для этого находим по таблицам функции Лапласса величину для которой функция будет равна 99%/2=0,495 - получаем примерно 2,58 (если вас интересует большая или меньшая точность, вместо 2,58 надо подставить другой коэффициент, соответствующий требуемой точности. На практике часто говорят о "правиле трех сигма", то есть абсолютное большинство или точнее 99,73% результатов будут лежать в диапазоне ±3*СКО, то есть если вас интересует максимальная точность, то используйте вместо 2,58 коэффициент 3 или даже 4, который дает точность 99,993%). Теперь легко можно вычислить оценку матожидания: средний выигрыш на 100 сдач по Трекеру ± 2,58*СКО/sqrt(количество раздач/100), где sqrt - извлечение квадратного корня. Как можно легко видеть из формулы, чем больше количество раздач, тем выше точность оценки. В принципе, данную формулу правильно использовать лишь при достаточно большом количестве сдач, более 10.000. При меньшем количестве сдач надо использовать уже Т-распределение Стьюдента, оно даст более широкие результаты, например, при 1000 сдач коэффициент будет составлять не 2,58, а 3,17. В принципе, аналогично матожиданию, будут изменяться и ожидаемые результаты от игры. Если домножить получившиеся границы оценки матожидания на количество сдач/100, то получим результаты, выраженные в ВВ, в который будет укладываться общий выигрыш с вероятностью 99%. 

СКО у нас тоже лишь оценочное, границы изменения данного параметра будут лежать в диапазоне СКО*sqrt(2*k)/(sqrt(2*k-1)±2,58), где к=количество рук/100.

Наконец, один из интересующих очень многих параметров - максимально возможный выигрыш/проигрыш. Этот параметр важен для определения количества денег, которые необходимо иметь для того чтобы играть, не боясь потерять все (требуемый банкрол). Для этого необходимо найти точку минимума нашей функции результата относительно количества раздач и затем по той же самой функции результата можно будет определить максимальный проигрыш при данном доверительном интервале. Не буду углубляться в преобразования, дам окончательные формулы: количество сотен сдач, на которых можно ожидать максимального проигрыша: (2,58*СКО/2/средний выигрыш на 100 сдач)^2, где ^2 - в квадрате. Подставив в формулу для определения результата искомое количество сдач, можем найти возможный проигрыш: количество сотен сдач*средний выигрыш на 100 сдач-2,58*СКО*sqrt(количество сотен сдач).

Прошу прощения за, возможно, не самое понятное объяснение. Но если вас заинтересовала эта тема, вы всегда можете взять учебник по матстатистике и разобраться самостоятельно. А все указанные выше формулы и вычисления реализованы в программе на закладке "Разное", вы можете сделать необходимые расчеты с помощь программы, не задумываясь о формулах.

На главную...