Расчет выплат игрового автомата - PullRequest
7 голосов
/ 09 ноября 2010

Есть этот вопрос , но он не имеет ничего общего, чтобы помочь мне здесь.

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

Мой вопрос: Как бы я обеспечил выплату 95% за год ?

Теоретически, конечно.
До сих пор я мог придумать три очевидные переменные, которые следует учитывать при расчете: срок выплаты машины (год в моем случае), общая сумма выплат и общая сумма полученных за этот период.

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

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

Я, конечно, надеюсь, что этот вопрос будет помечен как "Ответ" (:

Ответы [ 4 ]

15 голосов
/ 04 декабря 2012

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

Таблица выплат:

3xA = 5

3xB = 10

3xC = 20

Reels-strip - это последовательность символов на каждом барабане.Для расчетов вам нужно только количество каждого символа для каждого барабана:

A = 3, 1, 1 (3 symbols on 1st reel, 1 symbol on 2nd, 1 symbol on 3rd reel)

B = 1, 1, 2

C = 1, 1, 1

Полный цикл (общее количество всех возможных комбинаций) равен 5 * 3 * 4 = 60

Теперь вы можете вычислить вероятностькаждая комбинация:

3xA = 3 * 1 * 1 / full cycle = 0.05

3xB = 1 * 1 * 2 / full cycle  = 0.0333

3xC = 1 * 1 * 1 / full cycle  = 0.0166

Затем вы можете рассчитать доходность для каждой комбинации:

3xA = 5 * 0.05 = 0.25 (25% from AAA)

3xB = 10 * 0.0333 = 0.333 (33.3% from BBB)

3xC = 20 * 0.0166 = 0.333 (33.3% from CCC)

Total return = 91.66%

Наконец, вы можете перетасовать символы на каждом барабане, чтобы получить полоски барабанов, например "ABACA "для 1-го барабана.Затем выберите случайное число от 1 до длины полосы, например, от 1 до 5 для 1-го барабана.Этот номер является средним символом.Верхний и нижний из полосы.Если вы выбрали от края полосы, используйте первый или последний, чтобы зациклить полосу (это виртуальный барабан).Затем наберите результат.

В реальной жизни вам могут понадобиться Wild-символы, бесплатные спины и бонусы.Все они довольно сложно описать в этом ответе.

В этом примере частота попаданий составляет 10% (общее количество комбинаций = 60 и призовых комбинаций = 6).Большинство людей используют Excel для расчета этого материала, однако, вы можете найти несколько хороших инструментов для создания математики слотов.

Правильные ключевые слова для Google: PAR-лист, книга «слот математика может быть интересной».

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

2 голосов
/ 09 ноября 2010

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

Рассмотрим следующий алгоритм. Я думаю, что этот стиль мышления более надежен, чем построение графиков средних для достижения 95%;

if(  customer_able_to_win() )
{
   calculate_how_to_win();
}
else
  no_win();

customer_able_to_win () - это ваш журнал данных, в котором указывается, сколько вы получили, по сравнению с тем, сколько вы заплатили, если вы платите меньше 95%, то customer_able_to_win () возвращает true; в этом случае метод calc_how_to_win () вычисляет, сколько клиент сможет выиграть, основываясь на вашем%, поэтому давайте выберем период выборки в 24 часа. Если за последние 24 часа я выплатил 90% денег, которые я взял, то я могу заплатить до 5% .... давайте присвоим этим 5% число, например 100 $. Таким образом, Calculate_how_to_win говорит, что я могу заплатить до 100 долларов, так что я бы нашел набор барабанов, которые заплатили бы 100 долларов или меньше, и этот пользователь мог бы выиграть. Вы можете добавить немного случайного к нему, но чтобы гарантировать свои 95%, вам нужно будет использовать некоторые другие правила, такие как принудительная максимальная выплата, если вы опускаетесь ниже, скажем, 80%, и т. Д.

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

if(  customer_able_to_win() && payout_percent() < 90% )
{
   calculate_how_to_win(); // up to 5% payout
}
else
  no_win();

С чем-то подобным он будет проигрывать полосу проигрыша после того, как вы наберете 95%, пока не достигнете 90%, затем он продолжит победную серию случайных приращений, пока не достигнете 95%.

Это не полный ответ алгоритма, а скорее руководство о том, как думать о том, как работает игровой автомат.

Я всегда предполагал, что именно так работают игровые автоматы, особенно с видео-покером. Потому что функция no_win () будет рассчитывать, как проиграть, но при этом она будет выглядеть как 1 карта, дразнящая вас думать, что вы собираетесь выиграть, вместо того, чтобы иметь дело с «честной» игрой, и случайность просто так выглядит ....

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

1 голос
/ 09 января 2012

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

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

Во всяком случае, алгоритмы, о которых вы говорите, ДОРОГО!Они варьируются от 500 тыс. Долларов до нескольких миллионов на машину, так что, как вы понимаете, никто не собирается передавать их бесплатно, это точно.Если бы вы хотели однолинейный станок, это было бы достаточно легко сделать.Просто разработайте свои символы / карты и какую структуру оплаты вы хотите для каждого.Тогда вы могли бы просто распределить эти выплаты по неплатежам, пока не получите соответствующую цифру.Очевидно, что чем больше вариантов, тем больше времени потребуется, чтобы выплатить по этой соответствующей ставке, возможно, выплата начнется еще раньше.Частота попаданий и размер приза также являются факторами, которые вы можете учитывать

0 голосов
/ 09 ноября 2010

Простой способ сделать это, если вы предполагаете, что люди выигрывают постоянное число раз за период времени:

  • Создайте коллекцию всех возможных комбинаций тумблера с количеством каждой из них.выплачивается.

  • Когда кто-то впервые играет за этот период времени, вы можете предложить все комбинации с равной вероятностью.

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

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

  • Сброс и начните снова для следующего периода времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...