excel казино / Распределение сотрудников по рабочему времени за столами

Excel Казино

excel казино

ICE Totally Gaming 6 &#; 8 February

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Недавно мы рассказали про правило Парето — то самое правило 20/80, когда 20% усилий дают 80% результата. Вот короткая версия:

  • Распределение — это когда мы берём все данные и раскладываем их по какому-то выбранному значению.
  • Распределение Парето — это распределение данных с двумя параметрами: вероятностью и самим распределением данных.
  • В бытовом понимании распределение Парето говорит, что 20% какого-то действия, товара, продукта или чего-то ещё дают 80% пользы, денег или чего-то другого нужного. 
  • На самом деле распределение Парето — это математическая формула со множеством параметров. В зависимости от специфики данных правило 20/80 может быть и правилом 30/70, 10/90 и любых других комбинаций. Смысл в том, чтобы найти связь между меньшим значением и большим результатом.
  • Числа в сумме не обязательно должны давать — это просто красивая форма записи правила Парето. На самом деле часто бывает, что 22% усилий даёт 89% результата.

Давайте проверим на практике, как оно работает и можно ли его применить для анализа реальных данных.

Что делаем

Представим, что у нас есть лавка по продаже овощей и фруктов и четыре поставщика, которые привозят нам товар. В течение месяца мы заполняли данные в Экселе по проданному товару от каждого поставщика. Теперь мы хотим выяснить, на какие товары нам лучше всего сделать ставку в будущем. Чтобы это узнать, применим правило Парето и посмотрим, скажет ли оно нам что-нибудь или нет.

Скачать Эксель-файл

Таблица с результатами продаж за месяц выглядит так — её нужно будет привести в порядок и проанализировать:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Собираем общие значения выручки

Сейчас все данные в таблице разбросаны по разным строкам: морковь, например, есть в третьей, пятой и восьмой ячейке. Для анализа это не годится — данные нужно просуммировать заранее по каждой группе товаров. Используем для этого инструмент «Сводная таблица» в разделе «Вставка»:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

В появившемся окне перетаскиваем поле «Название» в строки, а поле «Выручка» — перетаскиваем в значения. После этого у нас появится просуммированная таблица, где каждый продукт встречается только один раз:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Теперь отсортируем выручку по убыванию: нам важно получить в начале списка самые большие числа. Для этого щёлкаем в любом месте таблицы, переходим в раздел «Данные» и выбираем сортировку по убыванию:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Итог: отсортированная таблица по выручке в порядке уменьшения. Уже видно, что морковь и картофель идут впереди с большим отрывом:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Добавляем рост выручки в процентах

Чтобы понять вклад каждой позиции в рост выручки, нам нужен ещё один столбец — он покажет, на сколько процентов этот товар увеличил общую выручку (это называется накопленная процентная выручка). Добавим его в ту же таблицу, просто перетащив выручку второй раз в раздел со значениями. После этого в таблице появится дубликат предыдущего столбца:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Теперь превратим это в накопленные проценты. Для этого щёлкаем правой кнопкой мыши по новому столбцу и выбираем «Дополнительные вычисления» → «Дополнительные параметры»:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

В появившемся окне переключаемся на «Дополнительные вычисления», выбираем в выпадайке «% от суммы с нарастающим итогом в поле» и выбираем поле «Название»:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Теперь всё как нужно: последний столбец показывает, на сколько увеличилась выручка после продажи каждой позиции:

Считаем деньги правильно: продвинутый Эксель и принцип Парето

Строим график Парето

Одна из задач графика Парето — показать, есть ли среди данных те, которые оказывают наибольшее влияние на общую картину. Проще говоря — есть ли в самом начале небольшое число данных, которые дают максимальный вклад в итоговый результат. Иногда может оказаться так, что таких данных нет или влияние не такое сильное, как мы думали.

Чтобы построить график Парето, щёлкаем в любом месте таблицы и на вкладке «Вставка» выбираем Гистограммы → Парето:

Строим график Парето

После этого у нас сразу появляется график Парето. Видно, что правило 80/20 здесь не сработает — чтобы получить 80% выручки, нужно реализовать половину товаров:

Строим график Парето

А вот если мы посмотрим на 65%, то увидим, что ⅔ прибыли составляет выручка от продажи ⅓ товаров. Это меньше половины, на них проще сосредоточиться, поэтому лучше выбрать именно первые 4 товара для увеличения выручки: 

Строим график Парето

Что в итоге

Теперь несколько выводов по итогам эксперимента:

  • Не все данные можно распределить по правилу Парето.
  • Даже если получится распределить, необязательно это будет 20/80 — там могут быть любые значения.
  • Если в наборе данных есть несколько значений, которые выделяются среди остальных, их можно использовать для правила Парето и определить процент значений, на которые они влияют. В нашем случае это морковь, картофель, слива и свёкла — они дают 65% всей выручки.

Бесплатный курс для тех, кто любит данные

А посмотрите, получится ли у вас рулить данными с помощью Python. Полностью бесплатный курс для тех, кто интересуется аналитикой и датой, но не готов сейчас вкладывать много в эту сферу. Попробуйте, посмотрите и решите.

Попробовать бесплатно
Бесплатный курс для тех, кто любит данныеБесплатный курс для тех, кто любит данныеБесплатный курс для тех, кто любит данныеБесплатный курс для тех, кто любит данные

Вёрстка:

Кирилл Климентьев

Моделирование лотереи в Excel

Лотерея - это не охота за удачей,
это охота за неудачниками.


С завидной регулярностью (а в последнее время - всё чаще) мне пишут люди с просьбами помочь в различных вычислениях, связанных с лотереями. Кто-то хочет реализовать в Excel свой секретный алгоритм подбора выигрышных чисел, кто-то - найти закономерности в выпавших номерах прошедших тиражей, кто-то - подловить организаторов лотереи на нечестной игре.

В этой статье мне хотелось бы ответить на часть этих вопросов. Благо, в Excel для решения таких задач достаточно инструментов, многие из которых, кстати, могут пригодиться и в более прозаических рабочих ситуациях.

Задача 1. Вероятность выигрыша

Возьмем для примера классическую лотерею "Столото 6 из 45". По правилам суперприз (10 млн. рублей или больше, если накопился остаток призового фонда с прошлых тиражей) получают только те, кто угадал все 6 чисел из Если вы угадали 5, то получите тыс. рублей, если 4 - р., если 3 числа из 6, то р., если 2 числа - вернете 50 р., потраченных на билет. Угадаете только одно или ни одного - получите только эндорфины от процесса игры.

Математическую вероятность выигрыша можно легко рассчитать с помощью стандартной функции ЧИСЛКОМБ (COMBIN), которая имеется в Microsoft Excel на такой случай. Эта функция вычисляет количество комбинаций N чисел из M. Так для нашей лотереи "6 из 45" это будет:

=ЧИСЛКОМБ(45;6)

что равно 8 - общее число всех возможных комбинаций в этой лотерее.

Если же хочется рассчитать вероятность для частичного выигрыша ( чисел из 6), то придётся сначала вычислить количество таких вариантов, которое равно произведению числа комбинаций угаданных чисел из 6 на количество не угаданных чисел из оставшихся ()=39 чисел. Затем общее количество всех возможных комбинаций (8 ) мы делим на полученное количество выигрышей по каждому варианту - и получим вероятности выигрыша для каждого случая:

Вероятность выигрыша в лотерею в Excel

К слову, вероятность, например, погибнуть в авиакатастрофе в России оценивается примерно как 1 к миллиону. А вероятность выиграть в казино в рулетку, поставив всё на один номер - 1 к

Если всё вышеперечисленное вас не остановило и вы по-прежнему готовы играть дальше - продолжаем.

Задача 2. Частота выпадения каждого числа

Для начала давайте определим с какой частотой выпадают те или иные числа. В идеальной лотерее, если брать для анализа достаточно большой временной интервал, у всех шаров должна быть одинаковая вероятность попадания в победную выборку. В реальности же особенности конструкции лототрона и вес-форма шаров могут вносить искажения в эту картину и для каких-то шаров вероятность выпадения вполне может оказаться выше/ниже, чем для других. Давайте проверим эту гипотезу на практике.

Возьмём для примера данные по всем прошедшим в году тиражам лотереи 6 из 45 с сайта их организатора Столото, оформленные в виде вот такой удобной для анализа "умной" таблицы с именем таблАрхивТиражей. Розыгрыши проходят два раза в день (в 11 утра и в 11 вечера), т.е. в этой таблице у нас полторы тысячи тиражей-строк - вполне достаточная для начала выборка для анализа:

Архив тиражей

Для подсчёта частоты выпадения каждого числа используем функцию СЧЁТЕСЛИ (COUNTIF) и дополнительно вложим в неё функцию ТЕКСТ (TEXT), чтобы добавить к одноразрядным числам начальные нули и звёздочки перед и после, чтобы СЧЁТЕСЛИ искала вхождение числа в любом месте комбинации в столбце В. Также для пущей наглядности построим диаграмму по результатам и отсортируем частоты по убыванию:

Частота выпадения

В среднем любой шар должен выпадать тиражей * 6 шаров / 45 номеров = ,53 раз (это как раз то, что называется в статистике математическим ожиданием), но хорошо видно, что некоторые числа (27, 32, ) выпадали заметно чаще (+18%), а некоторые (10, 21, )  наоборот заметно реже (%), чем основная масса. Соответственно, можно попробовать использовать эту информацию для стратегии выигрыша, т.е. либо ставить на те шары, что выпадают чаще, либо наоборот - делать ставку на редко выпадающие шары в надежде, что они должны нагнать отставание.

Задача 3. Какие числа давно не выпадали?

Ещё одна стратегия базируется на идее, что при достаточно большом количестве тиражей рано или поздно должно выпасть каждое число из всех имеющихся от 1 до Так что если какие-то числа давно не появлялись среди выигравших ("холодные шары"), то логично попробовать сделать на них ставку в будущем. 

Можно легко найти все давно не выпадавшие номера, если отсортировать наш архив тиражей за год по убыванию даты и использовать функцию ПОИСКПОЗ (MATCH). Она будет сверху-вниз (т.е. от новых к старым тиражам) искать каждое число и выдавать порядковый номер тиража (считая от конца года к началу), где последний раз это число выпало:

Холодные числа

Задача 4. Генератор случайных чисел

Ещё одна стратегия игры основана на том, чтобы исключить психологический фактор при угадывании номеров. Когда игрок выбирает числа, делая свою ставку, то подсознательно делает это не совсем рационально. По статистике, например, числа от 1 до 31 выбирают на 70 % чаще, чем остальные (любимые даты), реже выбирают 13 (чертова дюжина), чаще выбирают числа содержащие "счастливую" семерку и т.д. Но играем мы против машины (лототрона), для которой все числа одинаковы, так что имеет смысл выбирать их с такой же математической беспристрастностью, чтобы уравнять наши шансы. Для этого нам потребуется создать в Excel генератор случайных и - что особенно важно - неповторяющихся чисел:

    Генератор случайных чисел

Для этого:

  1. Создадим "умную" таблицу с именем таблГенератор, где в первом столбце будут наши числа от 1 до
  2. Во втором столбце введём вес для каждого числа (он потребуется нам чуть позднее). Если все числа для нас одинаково ценны и мы хотим выбирать их с равной вероятностью, то вес везде можно поставить равным 1.
  3. В третьем столбце используем функцию СЛЧИС (RAND), которая в Excel генерирует случайное дробное число от 0 до 1, добавив к нему вес из предыдущего столбца. Таким образом каждый раз при пересчёте листа (нажатии на клавишу F9) будет генерироваться новый набор из 45 случайных чисел с учётом веса для каждого из них.
  4. Добавим четвертый столбец, где с помощью функции РАНГ (RANK)вычислим ранг (позицию в топе) для каждого из чисел.

Теперь останется сделать выборку первых шести по рангу 6 чисел с помощью функции ПОИСКПОЗ (MATCH):

Выборка случайных чисел

При нажатии на клавишу F9 формулы на листе Excel будут пересчитываться и мы будем каждый раз получать новый набор из 6 чисел в зеленых ячейках. Причём числа, для которых был задан в столбце B больший вес, будут получать пропорционально больший ранг и, таким образом, чаще оказываться в результатах нашей случайной выборки. Если же вес для всех чисел задать одинаковым, то все они будут выбираться с одинаковой вероятностью. Таким образом мы получаем справедливый и беспристрастный генератор случайных чисел 6 из 45, но с возможностью внести корректировки в случайность распределения при необходимости.

Если же мы решим играть в каждом тираже не одним, а, например, двумя билетами сразу, в каждом из которых будем выбирать неповторяющиеся числа, то можно просто добавить к зелёному диапазону дополнительные строки снизу, прибавив к рангу 6, 12, 18 и т.д. соответственно:

Два билета с неповторяющимися номерами

Задача 5. Симулятор лотереи в Excel

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

Чтобы все было максимально приближено к реальности, представим на минуту, что сейчас 1 января года и впереди у нас тиражи этого года, в которых мы планируем играть. Реальные выпавшие числа я занёс в таблицу таблТиражи, отделив дополнительно выпавшие числа друг от друга в отдельные столбцы для удобства последующих вычислений:

Тиражи года

На отдельном листе Игра создадим заготовку для моделирования в виде "умной" таблицы с именем таблИгра следующего вида:

Симулятор лотереи в Excel

Здесь:

  • В желтых ячейках сверху будем задавать для макроса количество тиражей года, в которых мы хотим участвовать () и количество билетов, которыми мы играем в каждом тираже.
  • Данные для первых 11 столбцов (A-J) макрос будет копировать с листа тиражей года.
  • Данные для следующих шести столбцов (K-P) макрос будет брать с листа Генератор, где мы реализовали генератор случайных чисел (см. задачу 4 выше).
  • В столбце Q мы считаем количество совпадений выпавших чисел и сгенерированных с помощью функции СУММПРОИЗВ (SUMPRODUCT).
  • В столбце R вычисляем финансовый результат (если не выиграли, то минус 50 рублей за билет, если выиграли, то приз - 50 р. за билет)
  • В последнем столбце S считаем общий результат всей игры нарастающим итогом, чтобы видеть динамику в процессе.
И чтобы оживить всю эту конструкцию нам потребуется небольшой макрос. На вкладке Разработчик (Developer)выберем команду Visual Basicили воспользуемся сочетанием клавиш Alt+F Затем добавим новый пустой модуль через меню Insert - Moduleи введем туда следующий код:
Sub Lottery() Dim iGames As Integer, iTickets As Integer, i As Long, t As Integer, b As Integer 'объявляем переменные для ссылки на листы Set wsGame = Worksheets("Игра") Set wsNumbers = Worksheets("Генератор") Set wsArchive = Worksheets("Тиражи ") iGames = goalma.org("C1") 'количество тиражей iTickets = goalma.org("C2") 'количество билетов в каждом тираже i = 5 'первая строка в таблице таблИгра goalma.org("").Delete 'очищаем старые данные For t = 1 To iGames For b = 1 To iTickets 'копируем выигравшие номера с листа Тиражи и вставляем на лист Игра goalma.org(t + 1, 1).Resize(1, 10).Copy Destination:=goalma.org(i, 1) 'копируем и вставляем специальной вставкой значений сгенерированные номера с листа Генератор goalma.org("G4:L4").Copy goalma.org(i, 11).PasteSpecial Paste:=xlPasteValues i = i + 1 Next b Next t End Sub

Останется ввести желаемые исходные параметры в жёлтые ячейки и запустить макрос через Разработчик - Макросы (Developer - Macros) или сочетанием клавиш Alt+F8.

Моделирование лотереи

Для наглядности можно ещё построить диаграмму по последнему столбцу с нарастающим итогом, отражающую изменение денежного баланса в процессе игры:

График изменения баланса в игре

Сравнение разных стратегий

Теперь, используя созданный симулятор, можно протестировать на реальных тиражах года любую стратегию игры и посмотреть на результаты, которые бы она принесла. Если играть 1 билетом в каждом тираже, то общая картина "слива" выглядит примерно так:

Сравнение разных стратегий игры в лотерею

Здесь:

  • Генератор - игра, где в каждом тираже мы выбираем случайные числа, созданные нашим генератором (с одинаковым весом).
  • Любимчики - игра, где в каждом тираже мы используем одни и те же числа - те, что чаще всего выпадали в тиражах за последние два года (27, 32, 11, 14, 34, 40).
  • Аутсайдеры - то же самое, но используем самые редко выпадающие числа (12, 18, 26, 10, 21, 6).
  • Холодные - в всех тиражах используем числа, которые давно не выпадали (35, 5, 39, 11, 6, 29).

Как видите, разницы большой нет, но генератор случайных чисел ведёт себя чуть лучше остальных "стратегий".

Можно также попробовать играть большим количеством билетов в каждом тираже, чтобы перекрыть большее количество вариантов (иногда для этого несколько игроков объединяются в группу).

Игра в каждом тираже одним билетом со случайно сгенерированными числами (с одинаковым весом):

Игра одним билетом в каждом тираже

Игра 10 билетами в каждом тираже со случайно сгенерированными числами (с одинаковым весом):

Игра 10 билетами в каждом тираже

Игра билетами в каждом тираже со случайными числами (с одинаковым весом):

 билетов в тираже

Комментарии, как говорится, излишни - слив депозита неизбежен во всех случаях :)


СВЕДЕНИЯ О ДЕЯТЕЛЬНОСТИ ИГОРНОГО ЗАВЕДЕНИЯ (ФОРМА N 1-КАЗИНО)

┌────────────────────────────────────────────────────────────────┐

│Наименование отчитывающейся организации ________________________│

├────────────────────────────────────────────────────────────────┤

│Почтовый адрес _________________________________________________│

├───────┬────────────────────────────────────────────────────────┤

│Код │ Код (проставляет отчитывающаяся организация) │

│формы │ │

│по ОКУД│ │

├───────┼──────────┬─────────┬──────┬──────┬───────┬──────┬──────┤

│ │отчитываю-│вида дея-│отрас-│терри-│органи-│формы │ │

│ │щейся ор- │тельности│ли по │тории │зацион-│собст-│ │

│ │ганизации │по ОКДП │ОКОНХ │по │но - │вен- │ │

│ │по ОКПО │ │ │ОКАТО │право- │ности │ │

│ │ │ │ │ │вой │по │ │

│ │ │ │ │ │формы │ОКФС │ │

│ │ │ │ │ │по │ │ │

│ │ │ │ │ │ОКОПФ │ │ │

├───────┼──────────┼─────────┼──────┼──────┼───────┼──────┼──────┤

│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │

├───────┼──────────┼─────────┼──────┼──────┼───────┼──────┼──────┤

││ │ │ │ │ │ │ │

└───────┴──────────┴─────────┴──────┴──────┴───────┴──────┴──────┘

ExCeL London, UK

ICE Totally Gaming в Лондоне – это крупнейшая международная выставка в мире игровой индустрии.

ICE Totally Gaming входит в тройку выставок Великобритании по удовлетворенности участников и посетителей.

На выставке Вы встретитесь с самыми именитыми поставщиками игрового оборудование в мире: BB IN TECHNOLOGY, EveryMatrix N.V., Kambi Services Ltd и много других.


Почему стоит посетить выставку

&#; ICE является ежегодной стартовой площадкой для игровых инноваций, сотни новых продуктов в течение трех дней.

&#; Лучшие программы игрового обучения  вернулись в программу выставки,  игровые эксперты выступят конференциях предложат решения ключевых проблем.

&#; ICE &#; это уникальное место встречи для всех основных игровых игроков отрасли. Выставка позволяет создавать контакты, организовывать встречи и налаживать партнерские отношения с максимальным удобством и минимальными усилиями.

&#; Международные учетные данные ICE &#; никакое другое событие не даст вам такой международный доступ, сотни стран представлены на выставке каждый год.

&#; Шоу ICE предусматривает семинары свободны для посещения, где будут изучать ключевые проблемы, затрагивающие игровых профессионалов: eSports, казино, киберпреступность и безопасность; данные и персонализация, дизайн и развитие, игровые технологии лотерей; и мировое регулирование.

&#; ICE является изюминкой календаря игровой индустрии!

На выставке ожидается более 30 посетителей!

ICE Totally Gaming &#; это единственная выставка в мире, которая охватывает весь спектр игр во всех различных формах: лотереи, казино, гэмблинг и многое другое (смотрите на сайте goalma.org#/)

За последние четыре года выставку посетили профессионалы данной отрасли из стран мира, а 70% посетителей выставки возвращаются в Лондон из года в год на это мероприятие! Как думаете, стоит посетить ICE Totally Gaming ?

На выставке ICE Totally Gaming будут проводиться многочисленные семинары, вести которые собираются ведущие специалисты гэмблинг индустрии.


Где и когда?

ICE работает со вторника 6 по четверг 8 февраля . Шоу открыто с до во вторник, с до и с среды и с до в последний день, четверг.

Мероприятие проходит в ExCeL London, в самом сердце лондонских королевских доков.


Что нужно для визы в Англию, что бы посетить выставку?

  • Приглашение или билет на выставку
  • Документы о доходах
  • Справка из банка
  • Документы на сосбтвенность
  • Документы о семейном положении

Для посещения ICE Totally Gaming необходимо получить британскую визу, с чем мы сможем Вам помочь. Едете с другом или компанией? Тогда у нас скидка на визовые услуги 25% 

Рулетка анализ и стратегия - R

Описание игры

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

Технические характеристики:
✔️ Введите числа, которые отображались в живом казино или в онлайн-казино.
📲 Счетчик ставок бывает следующего типа:
Красный / Черный / Ноль
Even / Odd
Low () / High ()
Dozens: 1st 12 / 2nd 12 / 3rd 12
Колонны (1,2,3)
🔝 Векторные фишки и секторы рулетки (6X6 MATRIX)
⚠️ Генератор предупреждений, основанный на том, сколько раз определенное число отображалось в строке (красный / черный ..). Программа отметит ставку оранжевым треугольником.
💵 Отображение последних 8 выпавших номеров на рулетке
🏆 Рейтинг номеров, которые упали больше всего, и номеров, которые упали меньше всего
📊 Статистическая детализация каждого числа
📥 Сохраните игры каждого стола, чтобы проанализировать различные колеса рулетки
💯 Экспортируйте данные в EXCEL и создайте свою собственную стратегию игры в рулетку и анализ

Загрузите наше приложение!
Наше приложение можно загрузить совершенно бесплатно, но за некоторые функции взимается единовременная плата.
С помощью этого бесплатного инструмента прогнозирования ставок и приложения для отслеживания вы можете анализировать свои вращения в рулетке.
Это приложение представляет собой счетчик рулетки, калькулятор и инструмент анализа. (Это приложение не является онлайн-казино). Используйте это приложение для анализа рулетки и создания собственной стратегии!

Рулетка - это азартная игра, в которой выигрыш или проигрыш зависят от случая, поэтому мы просим вас не играть в рулетку на реальные деньги.

Последнее обновление

3 февр.  г.

Как я учил нейронные сети играть в казино

Hello, world!

Привет, Хабр! Меня зовут Михаил, я учусь на втором курсе Южно-Уральского государственного Университета и одни из самых любимых вещей в моей жизни - это программирование и азартные игры.

Уже около года я занимаюсь машинным обучением, а значит пора закрепить полученные навыки на практике. Тема исследования казино давно меня интересовала, а знакомство с sklearn и компанией дало мне обширный арсенал для этого.

Сегодня мы будем считать чужие деньги, писать парсер, исследовать данные, создавать модели машинного обучения и смотреть мемы.

Идея обыграть рулетку не нова, в отличие от идеи сделать это с помощью нейронных сетей. Немного погуглив, я наткнулся в основном на модели для игры в блекджек(21).

P.S. Данная статья не является рекламой азартных игр или конкретного сайта. Автор неоднократно проигрывал крупные суммы и не рекомендует никому связываться с казино или ставками.

Представляем вам злодея

В качестве противника будет выступать популярный сайт-рулетка по Counter Strike: Global Offensive - CSGOFAST. На этом сайте присутствует более десяти видов азартных игр, а в качестве валюты используются скины на оружия из игры CS:GO.

Мы будем пытаться обыграть евро рулетку, вернее её аналог c сокращенным количеством номеров. Выбор именно этого сайта обусловлен несколькими причинами, одна из них - личные счеты:) Об остальном будет сказано далее.

Ножи - одни из самых редких и дорогих предметов в игре.

Правила игры

Руле́тка  — азартная игра, представляющая собой вращающееся колесо с 36 секторами красного и чёрного цветов и м зелёным сектором «зеро» с обозначением нуля. Игроки, играющие в рулетку, могут сделать ставку на выпадение шарика на цвет (красное или чёрное), чётное или нечётное число, диапазон (1—18 или 19—36) или конкретное число. Крупье запускает шарик над колесом рулетки, который движется в сторону, противоположную вращению колеса рулетки, и в конце концов выпадает на один из секторов. Выигрыши получают все, чья ставка сыграла (ставка на цвет, диапазон, чётное-нечётное или номера).

Вот какое определение предлагает нам Википедия. Мы же будем иметь дело с упрощенной версией, в которой ставки принимаются только на выпадение цвета, а количество номеров уменьшено. Да и никакого крупье тут нет, обычные числа, сгенерированные компьютером :)

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

В начале раунда(то есть до ставок) на стороне сайта выбирается случайное число от 0 до 1. По окончании раунда оно домножается на 15 и округляется до целого в меньшую сторону. Получившееся число - номер победного сектора. Чтобы сайт не подкручивал рулетку как угодно ему, с самого начала раунда нам доступен SHA хеш случайного числа, которое выбрал сайт, а после раунда и само число, соответственно пользователь может самостоятельно пропустить его через SHA алгоритм и убедиться в честности.

Сайт не может подкрутить, так как победный цвет известен до ставок.

P.S. Для тех, кто не знаком с шифрованием, SHA это такая штука, которая преобразует одну последовательность символов в другую, при этом в обратную сторону так сделать довольно тяжело(практически невозможно). В этом и прикол.

Перейдем к делу

Для начала нужно определиться с данными, на основе которых наша модель будет предсказывать цвет следующего выпадшего числа. Максимум, доступный на сайте в реальном времени - результаты 50 последних игр, а также денежные ставки на текущую игру. Чтобы наша модель не нуждалась в дополнительном сборе наблюдений и её можно было использовать из коробки без ожидания, будем делать предсказание следующего цвета на 50 играх. Соответственно, наш первый шаг - написать парсер для сбора данных.

Мы будем использовать Python и библиотеку Requests-HTML, обычный requests не подойдет, поскольку для доступа к результатам игр нужно предварительно выполнить на странице весь JavaScript. Результаты будем записывать в .csv файлы. Также я не стал заморачиваться над причесыванием данных во время сбора, ведь гораздо легче сделать это парой команд из Pandas.

Объявим класс парсера. Он будет иметь две функции, одна из них будет подгружать историю игр, другая собирать информацию о проходящей в данный момент(это две разные страницы, соответственно и функции две). То есть, информацию о денежных ставках мы можем получить только из текущей игры, а выпавшие номера для всех 50 прошедших.

Парсер будет загружать HTML страницу, рендерить весь JavaScript, выбирать текст из контейнера '.history-wrap'(он содержит результаты 50 последних игр - то, что нам надо) а затем возвращать удобный список из результатов игр.

Аналогичным образом работает и вторая функция. Иногда случается момент, когда на странице отсутствует '.game-bets-header', поэтому добавлена проверка.

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

Ну, теперь оставляем все наше дело на парочку недель, чтобы оно в фоне сохраняло результаты игр

Поиграем

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

Я выделил 3 консервативных метода игры:

1) Игра без стратегии

Я просто полагался на удачу и интуицию, угадывая числа. На поле присутствует 7 черных, 7 красных и 1 зеленый сектор. Значит, при ставке на красное/черное мы имеем вероятность победы 7/15 или же По факту так играет большинство

Сыграв игр(без ставок), я угадал верно 45/ выпадений, что уже довольно близко к аналитически вычисленному значению. Забегая вперед, построим графики с помощью matplotlib и Pandas.

Зеленое - я угадал цвет, красное - я ошибся, серое - правильный ответ при моих ошибках. Стоит заметить, что precision и recall зеленого составляют два ноля:) Иначе говоря, ни один раз, предсказав ноль, я не оказался прав и не угадал ни одного действительно выпавшего ноля

2) Мартингейл

Стратегия заключается в том, чтобы начиная с малой суммы увеличивать ее на 2 в случае пройгрыша и ставить на тот же самый цвет.

Пример: 1 красное-проиграл-2 красное-проиграл-4 красное-проиграл-8 красное- выйграл(окупился на 1 единицу)- 1 красное Тогда выйгрыш всегда будет покрывать потери, а еще и давать прибыль в размере первой ставки.

Пусть S - начальная сумма.

Сформулировать это математически можно так: для того, чтобы сделать n ставок, нужно потратить S*(2^(n) - 1) валютных единиц. При этом вероятность проиграть будет выглядеть так: ^ n. Данная стратегия не терпит единого поражения, поскольку оно означает потерю баланса. Главный минус - сумма растет в два раза с каждой ставкой. С другой же стороны очень сложно поверить в выпадение, допустим, 20 черных подряд без подкруток(на деле автор видел 23 черных подряд). Измусоленная тема - ошибка игрока.

Сделаем вывод о данной стратегии во время анализа.

Посмотрим на сумму ставки при количестве игр n:

n=10

n=11

n=12

n=13

n=14

n=15

n=16

n=17

n=18

n=19

n=20

Иначе говоря, играя по Мартингейлу с запасом на 20 пройгрышей, вы будете рисковать миллионом ради одного рубля в почти самом плохом случае(в самом плохом вы проиграете:)). Хочу напомнить, что одна игра идет порядка 40 секунд, а вы будете получать по 1 единице прибыли с каждой игры. Для реальной прибыли надо начинать хотя бы с 10 рублей, и иметь в запасе 10 миллионов на запас из 20 игр.

3) Мартингейл++

До этой стратегии я(как и миллион других гениев-игроманов) додумался сам. Ждем, пока на рулетке выпадет одинаковых цветов на холостом ходу, а затем начинаем ставить по Мартингейлу.

Проблема в том, что если играть по 10 рублей и ждать выпадение 7 цветов в ряд, вы скорее состаритесь, чем станете миллионером.

Тем временем, наблюдения уже собрались.

Приведем данные в порядок

Вряд ли мы будем учить нейронку предсказывать соленый хэш, поэтому эти данные нам ни к чему. Время дается с точность до минут, оно мне не пригодилось.

Денежный датасет

Общий датасет

Теперь мы объединим 2 датасета в один

График пропущенных значений(бежевый цвет)

Исследование

2 вещи, которые всегда меня интересовали - какое максимальное количество раз какой-то цвет не выпадал и сколько казино получает прибыли. Будем добираться до сути.

Выяснили, что красное выпадало подряд 11 раз, черное 12, зеленое - 3.

Выпадение одинаковых цветов в ряд.

Также нужно посчитать кол-во игр, которое какой-то цвет, наоборот, не выпадал.

Красное не выпадало 16 игр подряд, черное 17, зеленое 95(!). Внимание на графики.

Я могу сделать для себя какие-то выводы. Еще совсем недавно я пытался ждать игр без зеленого, а затем начинал на него ставить до победного. Зная, что частенько зеленое не выпадает и 30+ раз, больше играть я по такой стратегии я не буду(хотя, кого я обманываю).

И самое главное - Мартингейл. 17 раз подряд. Рискуем тысячей денежных единиц ради одной. Если же начинать играть с середины, допустим, с восьмого выпадения - будем рисковать единицами ради одной. И никто не гарантирует, что больше 17 раз подряд серии не будет. Стоит ли оно того? Решает каждый сам.

Далее - прибыль сайта

$

За одиннадцать тысяч игр, с учетом пропущенных, сайт получил прибыль в размере долларов или рублей по текущему курсу. Я собирал данные 10 дней. Неплохо, однако

Ну, напоследок взглянем на то, как выглядит график числа раунда за игр.

Глазом закономерность не видно

Увидеть какие-то паттерны на данном графике невооруженным глазом невозможно.

Построение моделей

Я решил использовать 3 вида входных/выходных данных модели:

1) Предыдущие цвета -> следующий цвет

2) Предыдущие числа -> следующий цвет

3) Предыдущие числа -> следующее число

Создадим колонки с предыдущими выпадениями чисел(иначе говоря лагами)

Аналогичным образом будем создавать и лаги цветов для будущих моделей.

Теперь первую колонку(без задержек) можно использовать в качестве вектора ответов, а 50 колонок лагов в качестве матрицы признаков.

Перебор

Я опробовал линейные и логистические регрессии с разными гиперпараметрами на трех вариантах входных/выходных данных. Код практически не отличается, поэтому прикреплю один пример

goalma.org_estimator_

Итого опробовав 5 регрессий, а затем и пару полиномиальных и все это с разными гиперпараметрами, добиться точности выше не удалось(да и такая точность скорее всего получилась из-за удачно подобранного random seed, т.е. случайного фактора)

Далее в бой пошли случайные леса. И код, и результат там сильно схожи с предыдущими, поэтому прикреплять их не вижу смысла.

Neural Networks

На самом деле, результаты простых моделей уже подбили мою веру в успех, но, как говорится, попытка - не пытка.

goalma.org vs random

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

Внимание на последние эпохи:

Внезапно(или нет?) количество потерь сократилось до Ура? Нет. Наша модель просто переобучилась и заучила ответы на тренировочной выборке. Посчитав accuracy, получаем , что даже хуже, чем у полиномиальной регрессии

Напоследок я попробовал другие конфигурации нейронов и даже модель с денежными ставками, но ничего путного из этого не вышло. Жаль

Контекст другой, эмоции те же

Заключение

К сожалению, нейронные сети это не магия, а всего лишь крутое применение математики. Я не стал миллионером, но зато получил ответы на вопросы, которые не давали спать по ночам и прокачал свои скиллы. Возможно, собрав больше данных, закономерность получится найти, но об этом мы узнаем уже в следующей части статьи, если она будет)

Ссылка на ноутбук в Colab

Ссылка на данные

А на этом я с вами прощаюсь. Надеюсь, не навсегда.

nest...

казино с бесплатным фрибетом Игровой автомат Won Won Rich играть бесплатно ᐈ Игровой Автомат Big Panda Играть Онлайн Бесплатно Amatic™ играть онлайн бесплатно 3 лет Игровой автомат Yamato играть бесплатно рекламе казино vulkan игровые автоматы бесплатно игры онлайн казино на деньги Treasure Island игровой автомат Quickspin казино калигула гта са фото вабанк казино отзывы казино фрэнк синатра slottica казино бездепозитный бонус отзывы мопс казино большое казино монтекарло вкладка с реклама казино вулкан в хроме биткоин казино 999 вулкан россия казино гаминатор игровые автоматы бесплатно лицензионное казино как проверить подлинность CandyLicious игровой автомат Gameplay Interactive Безкоштовний ігровий автомат Just Jewels Deluxe как использовать на 888 poker ставку на казино почему закрывают онлайн казино Игровой автомат Prohibition играть бесплатно