Как я пытался казино обыграть

Это, кажется, был обычный Новый Год с 2013 на 2014. Понятия не имею, что именно в ту ночь так ударило мне в голову (точно не алкоголь), что 1 января, напрочь забыв про сессию, я достал кучу пустых листов и начал писать. Я пытался на основе всем известного мартингейла придумать какую-нибудь интересную стратегию для рулетки.

Понятно, что ресурсов бумаги и моего мозга очень скоро стало не хватать, и я привлек друзей, интернет, программирование. Тогда я и не подозревал, что эта навязчивая идея заберет у меня 2 месяца жизни. Теперь я хочу поделиться этой историей с вами, а заодно и упорядочить в голове всё проделанное за это время. Не обошлось без ошибок, разочарований, злости и желания забросить этот бред подальше, но всё закончилось хорошо. Но обо всем по порядку.

Часть 1. Красно-чёрный провал

В двух словах о мартингейле, на всякий случай. Необходимо ставить на один и тот же цвет до выигрыша, каждый раз удваивая ставку. При выигрыше менять цвет и ставку, брать снова минимальную.

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

Потом, не без помощи одного моего хорошего друга, оно превратилось в окончательный вариант:

1. Вероятность выпадения комбинации длины N равна 2^(-N), таким образом существует какая-то средняя длина между комбинациями. Например, средняя длина между комбинациями в 10 одинаковых цветов подряд — 1024. Плюс еще суммарная вероятность выпадения всех комбинаций длиннее 10 — так же 2^(-10). Т.е. если ждать комбинации >= 10, то средняя длина между всеми плохими комбинациями будет около 500. В этот момент я обрадовался и подумал, что интервалы между плохими комбинациями распределены по Гауссу, и дождавшись плохой комбинации — мы просто вступим после нее на такое кол-во «прокручиваний» колеса, на котором вероятность встретить еще одну плохую комбу — не попадет скажем в 2 сигма. К сожалению только для комбо фиксированной длины, например только 10 — среднее длина невыпадений этой комбы совпадает с экстремумом распределения. Так что радостно собрав статистику по длине интервалов между комбинациями длины >= N, я увидел это:

Как видно среднее — Mean (не помню точно для каких длин комбинаций писалась эта модель, но цифра на графике примерно совпадает с расчетной) малость не совпадает с максимумом. Это означало, что между длинами невыпадения плохих комбинаций нет никаких корреляций, следовательно нет безопасной длины, на которой мы не встретим плохую комбу после предыдущей плохой.

2. Тут я задумался, а не шаманит ли казиношный ГСЧ. Я собрал статистику и сравнил со своей моделью (к слову, с казино работал бот на Autoit, модели писали на C++, а графики строились с помощью root).

На первый взгляд всё ОК — каждый след столбец в 2 раза ниже предыдущего. Но взгляните на «хвосты» распределений

Как-то у казино (синяя) слишком часто встречаются большие комбы начиная от 13 (попалось даже 22, но тут не видно). Хотя статистика у них в 10000 раз меньше чем у модели. Подозрительно)

3. Окончательный вариант стратегии «равных шансов». Вступаем на кол-во прокручиваний рулетки в зав-ти от найденной комбы. У нас было гак: нашлось комбо из 6 красных — играем один раз на черное по ставке X. Комбо из 7 — играем два раза по ставке Х/2, из 8 — четыре раза по ставке Х/4. Длина игр после каждой комбинации была пропорциональна вер-ти её выпадения. То же и со ставками — суммарный выигрыш после каждой комбы был равен X. Если при игре, скажем, после комбо 10 (16 игр по ставке X/16) выпадает комбо 6 — то играем одну игру по повышенным ставкам, соответствующим комбо х6. А дальше доигрываем остаток игр от комбо х10.

Казалось бы, все круто — безопасность есть (отрезки довольно маленькие) и комбо выпадает довольно часто. Поиграв пару раз на демо-счете в интернет казино я получил нечто следующее:

К слову, 2500 событий (прокруток рулетки) бот выполняет где-то за 12 часов. Вернемся к результатам. Несколько сотен долларов (демо-счет, напоминаю) в день.

«Я богат!» — подумал я — «Нахрена учился почти 5 лет на физика-ядерщика, если вот оно — будущее». Но осторожность взяла верх. Я подумал, вдруг это временный период везения, и решил построить модель на более длительное число событий. После того, как я увидел результат, будущие пальмы, Порше и девушки в бикини вмиг улетучились из моей головы.

Итог стратегии — провал!

Часть 2. Три брата

Этот период довольно короткий. Пришла в голову идея, а почему бы не ставить на столбцы. Ставишь на 2 — который проиграл увеличиваешь ставку, который выиграл — ничего не ставишь, который пустовал — минимальная ставка. Преимущества: выплаты по столбцам 3 к 1, а значит можно выбрать более «щадящую» прогрессию, нежели удвоение, и пережить более длинны комбинации. Самая медленная прогрессия из прибыльных получилась такой:

В скобках указаны выигрыши на этой ставке (в тех же единицах что и члены прогрессии). Здесь возникла техническая проблема: если в первой стратегии достаточно было определить цвет выпавшего числа в казино, то здесь уже необходимо было распознавать какое именно число выпало. Здесь нам пришлось осваивать пакет распознавания символов OCR Tesseract от гуглов. Но и здесь не обошлось без загвоздки — не удавалось распознавать все символы без ошибок. Они выглядели следующим образом:

Казино привлекло наличием таких же мелких лимитов по ставкам и наличием рулеток без zero с матожиданием 0. Оно действительно 0, на других подобных сайтах на рулетках без zero назначается «налог» за каждое прокручивание колеса. Здесь такого нет.

Имеются также приятные бонусы, такие как контроль честности и контроль ГСЧ.

Но вернемся к неудавшемуся по началу распознаванию символов. Пришлось «тренировать» тессеракт. Делать скриншоты всех выпадающих чисел и создавать собственный язык/шрифт. Это вполне успешно получилось и все числа стали распознаваться правильно. К сожалению, и эта стратегия себя не оправдала (модель выдавала проигрышные комбинации длиной в 40+)

Итог: ПРОВАЛ №2

Часть 3. Финал

Общий итог предыдущих двух частей — мартингейл и игра по профессии — в лучшем случае ходьба по лезвию ножа — ты жив, пока тебе везет. Ну или попросту ЛОХОТРОН. Стоило потратить полтора месяца и написать несколько тысяч строк кода, чтобы осознать очевидное. Но пока сам не попробуешь что огонь жжется — не поймешь.

Поняв, что прогрессии и zero не оставляют нам реальных шансов, я решил напоследок попробовать вот какую стратегию:

  1. Генерим рандомное число
  2. Ставим на все числа кроме него (выигрыш составит 1 ставку на рулетке с МО = 0)
  3. При проигрыше (не пинать!) увеличиваем ставку по прогрессии

На BetVoyager’e есть рулетка с 38 ячейками и нулевым МО. Т.о. образом вероятность проигрыша 1/38. Есть одна доработка. Если казино выбрасывает два одинаковых числа подряд (при этом не «угадывая» наше), то есть смысл не ставить именно на это число, так как вероятность его третьего выпадения подряд равна 1/(38^З). Вот что сказала по этому поводу модель (начальный счет — 150$)

Прошу прощения, модель для 36-ячеечной рулетки. Вроде бы неплохо. Теперь посмотрим как играл бот на самом казино:

Как и ожидалось, счет просто колеблется вокруг начального значения (1000 евро демо-счета), и наша задача поймать момент когда амплитуда положительна и остановить игру.

И вот это уже действительно реально! 20-30 евро в день можно зарабатывать спокойно.

Эпилог

После всего этого мы не стали играть на деньги. Муторная регитрация на БетВояджере, долгий вывод денег, неподдержка Киви и какие-то ограничения для регистраций с России остановили нас.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *