Я провел много исследований генераторов случайных чисел для игровых автоматов, вычислений остановки барабанов и того, как физически дать пользователю хороший шанс на выигрыш.
Чего я не могу понять, так это как правильно обеспечить, чтобы машина получала рейтинг выплат (скажем, 95%).
Итак, у меня есть катушка создать остроумие 22 пространства на нем. Заполнено 16 различными символами.
Когда я получаю свое случайное число, делю его на 64 и получаю остаток, я переключаюсь на таблицу циклов, чтобы увидеть, как виртуальный останов относится к положению барабана.
Теперь, когда у меня есть способ остановки барабанов, я должен убедиться, что соотношение выплат правильное? Как на каждый доллар, который они вложили, как убедиться, что машина будет платить 0,95 цента?
Спасибо за идеи.
Я работаю в ActionScript, если это помогает с проблемами языка, но в целом я просто ищу теорию.
Изменить: Существует реальные деньги участвуют только в том , что они могут купить больше фишек , чтобы играть больше. Человеку не будут выплачены реальные деньги, если он действительно ударит по любой из линий выплат.
источник
Ответы:
То, что вы спрашиваете, относится к теории вероятностей . Проще всего работать с одним барабаном, а затем расширить его на несколько барабанов, как только вы поймете, как это работает.
Подумайте, есть ли у вас катушка, у вас есть символы, которые вы хотите назначить стопам. Чем больше символов на барабане, тем лучше контроль над конечными результатами, но игрок будет чувствовать себя более случайным. Цель состоит в том, чтобы сбалансировать количество символов и остановок, чтобы машина чувствовала себя менее случайной для игрока, и у них больше шансов.
Если бы у вас было 10 символов и 10 остановок, каждый символ имел бы шанс 1 на 10. Неважно, в каком порядке расположены символы (на практике случайность игры так же хороша, как и ваш генератор случайных чисел). Другими словами, вы можете ожидать увидеть 10 разных символов в 10 спинах или разные символы на каждом спине. Вероятность получить один конкретный символ - 1 к 10. Таким образом, на каждые 10 вращений можно ожидать увидеть каждый отдельный символ один раз. Если вы выбрали 1 символ как «выигрышный», игрок должен был сыграть 10 раз, прежде чем он выиграл. С этой информацией довольно просто рассчитать выплату. Если вы начисляете 1 доллар за каждый спин, им придется потратить 10 долларов, прежде чем они попадут в выигрыш. Если ваш ожидаемый рейтинг составляет 95%, расчет составляет $ 10 x 95% = $ 9.50. Другими словами, приз за приземление «выигрышного» символа должен составлять $ 9,50, чтобы ожидаемая выплата составила 95%. Теперь помните, что все это в среднем. Нет гарантии, что символ появится ровно через 10 спинов, для его появления может потребоваться 100 или 1000 спинов, или даже всего один спин. В течение достаточно длительного времени машина в среднем будет платить правильную сумму.
Чтобы заставить это работать на нескольких барабанах, вам нужно умножить вероятность выигрыша каждого барабана. Рассмотрим пример 3 барабанов с 10 символами на каждом барабане и 1 выигрышным символом на каждом барабане, как в предыдущем примере. Допустим, вы хотели, чтобы игрок выиграл только тогда, когда все три барабана показывают символ победы одновременно. Для этого вам нужно определить вероятность каждого барабана, а затем умножить вероятности вместе. Из предыдущего примера мы знаем, что вероятность равна 1 из 10. Это также можно записать как 1/10 или 0,1. Вероятность одновременной посадки всех трех барабанов на выигрышный символ составляет 1/10 x 1/10 x 1/10, или 0,1 x 0,1 x 0,1, или 0,001, или 1 на 1000. Мы видим, что меньшая вероятность появления символа выигрыша на всех трех барабанах одновременно. Игрок должен будет в среднем 1000 раз вращаться, прежде чем он выиграет. Если бы каждый спин составлял 1 доллар, им нужно было потратить 1000 долларов, чтобы выиграть. Расчет процента выигрыша при этом составляет: $ 1000 x 95% ** = $ 950,00.
Это теория в двух словах. Остальное - это балансирование между различными вероятностями, чтобы игра выглядела более интересной.
В вашем случае, если у вас 22 стопа и 16 символов. Это означает, что у вас будет 6 символов, которые совпадают как минимум с одним другим символом. Точная вероятность появления любого конкретного символа зависит от общего числа появлений этого символа на барабане. Сколько каждого символа на каждом барабане действительно зависит от вас.
В качестве примера, скажем, у вас есть 15 уникальных символов и 7, которые являются дубликатами. Вероятность появления любого из дубликатов составляет 7 из 22, или 7/22, или 32%. Если бы у вас был 1 барабан с вращением в 1 доллар, игрок приземлился бы на один из дубликатов 32 раза за 100 вращений. Выплата рассчитывается как (1 / (32/100)) х 95% х $ стоимость. Таким образом, если бы он стоил 1 доллар за спин, вы платили бы игроку 2,97 доллара каждый раз, когда появлялся один из дубликатов.
В качестве другого примера, если у вас было 3 барабана и это стоило 2 доллара за спин, вы бы рассчитали выплату следующим образом: (1 / (32/100 x 32/100 x 32/100)) x 0,95 x $ стоимость = 30,5 х 95% х 2 = 57,95 долл. Вы можете рассчитать вероятности других недубликатов следующим образом: (1 / (1/22 x 1/22 x 1/22)) x 0,95 x $ стоимость = 10648 x 0,95 x $ 2 = $ 20231,20. Это довольно большое число, но тогда вероятность появления любой из выигрышных последовательностей довольно мала (примерно 9x10 ^ -5).
В последних примерах различия весьма существенны: игрок либо очень часто выигрывает $ 58, либо почти $ 20231, без разницы между ними. Искусство вовлечения в игру состоит в том, чтобы создавать больше возможностей для выигрыша с различными суммами. Это часто достигается путем смешивания барабанов с разными вероятностями. Таким образом, вместо каждой катушки, имеющей
одинаковое количество каждого символа, на одном барабане может быть больше символов или более одного типа символов и т. д. Формула для расчета вероятности такая же, как и раньше, просто не забудьте использовать правильные соотношения для каждого барабана. Например, если у вас есть барабан A с 22 остановками и 3 вхождениями символа, барабан B с 26 остановками и 2 вхождениями символа и барабан C с 20 остановками и 5 вхождениями символа, формула будет выглядеть следующим образом: (1 / (3/22 x 2/26 x 5/20)) x 95% x $ стоимость.
И это все, что нужно сделать. Надеюсь, я не допустил слишком много ошибок в примерах, поэтому вы все равно сможете найти это полезным: P
** Примечание в примечании, 95% идентичны 0,95. 32/100 идентично 0,32, 7/22 идентично 0,31818 .. и т. Д.
источник
Вы хотите, чтобы ожидаемое значение было 0,95. Проще говоря, это сумма
probability * payout
для каждого государства.Метод грубой силы состоит в том, чтобы выполнить итерацию по всем 22 ^ 3 состояниям (при условии, что у вас есть 3 барабана), сложить выплату и разделить сумму на 22 ^ 3. Однако, поскольку большинство штатов, вероятно, ничего не выплачивают, может быть проще определить все штаты, которые выплачивают вместо этого.
Например, если у вас 1 Bell sybols на катушку, то вероятность
будет 1/22 ^ 3. И если у вас 2 Вишни на катушку, то вероятность
будет 1/11 ^ 2.
РЕДАКТИРОВАТЬ: выше только говорит вам, как проверить, что выплаты дают желаемую ставку возврата. В качестве простого примера рассмотрим игру, в которой вы платите 1 доллар, чтобы перевернуть 2 монеты. Вот три схемы выплат, которые все дают доходность 0,95:
Какой из них более «весело»? Кому ты рассказываешь...
источник
Более простой и надежный способ сделать это - не имитировать барабаны, а использовать внутренний кубик, который выбирает выигрыш игрока, а затем просто процедурно заполнить барабан (или сохранить где-то большой набор, но это, вероятно, займет больше времени). делать).
источник
Остальные не коснулись этого:
Если вы используете абсолютно случайные числа, нет никакой уверенности. Однако вы можете вести статистику выплат и корректировать вероятность выплаты во время выполнения, используя цикл обратной связи .
Если в течение некоторого времени выплаты не было, увеличьте вероятность выигрыша, и наоборот.
Вы можете запустить моделирование прогонов (нужно сделать несколько миллиардов итераций), чтобы убедиться, что ваш цикл обратной связи работает как задумано.
источник
Обратите внимание, что все ответы до сих пор предполагают, что у вас есть идеальный ГСЧ для работы. Чистый программный RNG на самом деле является псевдо-RNG, или сокращенно PRNG, потому что одно и то же входное значение (начальное число) всегда будет генерировать одну и ту же последовательность случайных чисел, поэтому PRNG по своей природе предсказуем.
Конечно, трудно отличить «истинные» от «псевдо» ГСЧ на стороне клиента, особенно при небольшом размере выборки, но есть разница - в приложении, где задействованы деньги и юридическая ответственность, я бы не стал рисковать. Если вам нужен RNG, единственное, что хуже, чем отсутствие RNG, это иметь сломанный RNG, не зная об этом, так что это одна из областей, где ваша компания никогда не должна срезать углы или учиться на лету.
Есть хорошие алгоритмы PRNG, но они никогда не будут соответствовать физическому источнику энтропии. Поэтому, чтобы математика работала как на практике, так и в теории, убедитесь, что вы используете наилучшую возможную ГСЧ - это отвечает интересам вашей компании как в юридическом, так и в финансовом отношении.
источник
Очень простым подходом может быть просто повторение всех возможных результатов вращения и суммирование суммированных выигрышей по сравнению с общим количеством собранных денег.
Начните с создания макетов колес, при необходимости разрешите дублирование символов. Определите выигрышные схемы и выплаты, которые вы хотите. Запустите шаблон колеса, используя алгоритм для определения общей суммы выплат, разделите на собранные деньги, это ваш коэффициент выплат.
Если оно слишком высокое, добавьте больше пробелов или поменьше платных символов, ИЛИ уменьшите выплату по шаблону (т. Е. Три отдельных бара могут составлять 10 долларов или 5 долларов). Перезапустите алгоритм, пока не будет определен желаемый коэффициент выплат.
Это позволяет вам сохранять равномерную выплату (не 4,58 доллара за выигрышный паттерн, вы можете использовать 5 долларов). Возможно, вы не сможете найти точную выплату, скажем, 95%, но с настройкой вы сможете приблизиться.
Вот пример алгоритма для определения коэффициента заработной платы колесной формы:
источник