¿Cómo aseguro una proporción de pago adecuada para una máquina tragamonedas?


11

He investigado mucho sobre generadores de números aleatorios para máquinas tragamonedas, cálculos de parada de carretes y cómo dar físicamente al usuario una buena oportunidad de ganar.

Lo que no puedo entender es cómo asegurar adecuadamente que la máquina tendrá una calificación de pago del 95%.

Entonces, tengo un carrete configurado con 22 espacios. Lleno de 16 símbolos diferentes.

Cuando obtengo mi número aleatorio, el mod lo divide por 64 y obtengo el resto, salto a una mesa de bucle para ver cómo la parada virtual se relaciona con la posición del carrete.

Ahora que sé cómo se detendrán los carretes, ¿me aseguro de que la proporción de pago sea correcta? Por cada dólar que ponen, ¿cómo puedo asegurarme de que la máquina pagará .95 centavos?

Gracias por las ideas

Estoy trabajando en ActionScript, si eso ayuda con los problemas del lenguaje, pero en general solo estoy buscando teoría.

Editar: hay dinero real involucrado solo en el hecho de que pueden comprar más fichas para jugar más. No se pagará dinero real a la persona, si realmente llegara a alguna de las líneas de pago.


2
¿Es este código crítico para el negocio ?, ¿sus usuarios ganan dinero real?
Dave O.

Respuestas:


9

Lo que estás preguntando está relacionado con la teoría de la probabilidad . Es más fácil trabajar con un carrete y luego extenderlo a múltiples carretes una vez que comprenda cómo funciona.

Tenga en cuenta que si tuviera un carrete, tiene algunos símbolos que desea asignar a las paradas. Más símbolos en un carrete conducirán a un mayor control sobre los resultados finales, pero se sentirán más aleatorios para el jugador. El objetivo es equilibrar el número de símbolos y paradas para que la máquina se sienta menos aleatoria para el jugador y tenga más posibilidades.

Si tuviera 10 símbolos y 10 paradas, cada símbolo tendría una probabilidad de 1 en 10 de aparecer. No importa en qué orden estén los símbolos (en teoría, en la práctica, la aleatoriedad del juego es tan buena como su generador de números aleatorios). En otras palabras, puede esperar ver 10 símbolos diferentes en 10 giros, o un símbolo diferente en cada giro. La posibilidad de obtener un símbolo en particular es de 1 en 10. Por lo tanto, por cada 10 giros, puede esperar ver cada símbolo individual una vez. Si elegiste 1 símbolo para ser el símbolo "ganador", el jugador tendría que jugar 10 veces antes de ganar. Con esta información, es bastante sencillo calcular el pago. Si les cobra $ 1 por cada giro, tendrán que gastar $ 10 antes de ganar. Si su calificación esperada es 95%, el cálculo es $ 10 x 95% = $ 9.50. En otras palabras, el premio por aterrizar en el símbolo "ganador" debe ser de $ 9.50 para tener un pago esperado del 95%. Ahora recuerde que todo esto se basa en el promedio. No hay garantía de que el símbolo aparezca exactamente en 10 giros, puede tomar 100 o 1000 giros, o incluso solo 1 giro para aparecer. En un tiempo suficiente, la máquina pagará la cantidad correcta en promedio.

Para que esto funcione en múltiples carretes, debe multiplicar la probabilidad de ganar de cada carrete. Considere un ejemplo de 3 carretes con 10 símbolos en cada carrete y 1 símbolo ganador en cada carrete como en el ejemplo anterior. Digamos que desea que el jugador gane solo cuando los tres carretes muestren el símbolo ganador al mismo tiempo. Para hacer esto, necesita calcular la probabilidad de cada carrete y luego multiplicar las probabilidades juntas. Sabemos por el ejemplo anterior que la probabilidad es 1 en 10. Esto también se puede escribir como 1/10 o 0.1. La probabilidad de que los tres carretes lleguen al símbolo ganador al mismo tiempo es 1/10 x 1/10 x 1/10, o 0.1 x 0.1 x 0.1, o 0.001, o 1 en 1000. Vemos que hay mucho menor probabilidad de que el símbolo ganador aparezca en los tres carretes al mismo tiempo. El jugador necesitaría girar 1000 veces en promedio antes de ganar. Si cada giro fuera de $ 1, tendrían que gastar $ 1000 para ganar. El cálculo del porcentaje ganador es: $ 1000 x 95% ** = $ 950.00.

Esa es la teoría en pocas palabras. El resto es equilibrar equilibrando las diferentes probabilidades para hacer que el juego parezca más interesante.

En su caso, si tiene 22 paradas y 16 símbolos. Esto significa que tendrá 6 símbolos que son lo mismo que al menos otro símbolo. La probabilidad exacta de que aparezca un símbolo en particular depende del número total de apariciones de ese símbolo en el carrete. Cuántos de cada símbolo hay en cada carrete depende de usted.

Como ejemplo, supongamos que tiene 15 símbolos únicos y 7 que son todos duplicados. La posibilidad de que aparezca cualquiera de los duplicados es 7 en 22, o 7/22, o 32%. Si tuviera 1 carrete, a $ 1 por giro, el jugador aterrizaría en uno de los duplicados 32 veces en 100 giros. El pago se calcula como (1 / (32/100)) x 95% x $ costo. Entonces, si costaba $ 1 por giro, le pagaría al jugador $ 2.97 cada vez que apareciera uno de los duplicados.

Como otro ejemplo, si tuviera 3 carretes y costara $ 2 por giro, calcularía el pago de la siguiente manera: (1 / (32/100 x 32/100 x 32/100)) x 0.95 x $ costo = 30.5 x 95% x $ 2 = pago de $ 57.95. Puede calcular las probabilidades de los otros no duplicados de la siguiente manera: (1 / (1/22 x 1/22 x 1/22)) x 0.95 x $ costo = 10648 x 0.95 x $ 2 = $ 20231.20. Ese es un número bastante grande, pero la probabilidad de que aparezca cualquiera de las secuencias ganadoras es bastante baja (aproximadamente 9x10 ^ -5).

En los últimos ejemplos, las diferencias son bastante extremas: el jugador gana $ 58 muy a menudo o $ 20231 casi nunca, sin variaciones intermedias. El arte de hacer que el juego sea atractivo es crear más oportunidades para ganar con cantidades variables. Esto a menudo se logra mezclando carretes con diferentes probabilidades. Entonces, en lugar de que cada carrete tenga
el mismo número de cada símbolo, un carrete puede tener más símbolos, o más de un tipo de símbolo, y así sucesivamente. La fórmula para calcular la probabilidad es la misma que antes, solo recuerde usar las proporciones correctas para cada carrete. Por ejemplo, si tiene el carrete A con 22 paradas y 3 ocurrencias de un símbolo, el carrete B con 26 paradas y 2 ocurrencias del símbolo, y el carrete C con 20 paradas y 5 ocurrencias del símbolo, la fórmula se vería así: (1 / (3/22 x 2/26 x 5/20)) x 95% x $ costo.

Y eso es todo lo que hay que hacer. Espero no haber cometido demasiados errores en los ejemplos, por lo que aún podrá encontrarlo útil: P

** Una nota sobre notación, 95% es idéntico a 0,95. 32/100 es idéntico a 0.32, 7/22 es idéntico a 0.31818 .. etc.


Asombroso. Me acabas de salvar mucho trabajo. He leído muchos documentos sobre cómo deberían funcionar las máquinas tragamonedas, pero esta respuesta realmente me la vendió en términos simples. ¡Gracias!
Stephen

7

Desea que el valor esperado sea ​​.95. En términos simples, esta es la suma de probability * payoutcada estado.

Un método de fuerza bruta sería iterar sobre los 22 ^ 3 estados (suponiendo que tenga 3 carretes), sumar el pago y dividir la suma por 22 ^ 3. Sin embargo, dado que la mayoría de los estados probablemente no pagan nada, podría ser más fácil resolver todos los estados que sí pagan.

Por ejemplo, si tenía 1 símbolo de Bell por carrete, entonces la probabilidad de

[Bell] [Bell] [Bell]

sería 1/22 ^ 3. Y si tuvieras 2 cerezas por carrete, entonces la probabilidad de

[Cherry] [Cherry] [any]

sería 1/11 ^ 2.


EDITAR: Lo anterior solo le dice cómo verificar que los pagos dan la tasa de retorno deseada. Como un ejemplo simple, consideremos un juego en el que pagas $ 1 para lanzar 2 monedas. Aquí hay tres esquemas de pago que dan una tasa de retorno de .95:

  1. Dos cabezas pagan $ 3.80, todo lo demás no paga nada
  2. Dos caras o dos colas pagan $ 1.90, todo lo demás no paga nada
  3. Dos cabezas no pagan nada, todo lo demás paga $ 1.26

¿Cuál es más "divertido"? Dígame usted...


Dicho esto, ninguna máquina tragamonedas hecha en las últimas décadas gira carretes como ese. Si tres campanas pagan botes, van a aparecer desproporcionadamente menos, sin importar cuántos estén en el carrete físico.

3
Solo manejo las matemáticas: hacer que sea divertido es el trabajo de otra persona :)
celion

@joe - Estoy de acuerdo, las campanas estarán en el carrete una tonelada menos que el resto de los símbolos. @celion No entiendo completamente todavía. Digamos que tengo los carretes (tengo 5), y el usuario presiona el botón para jugar. Tomo los siguientes 5 números aleatorios, hago los cálculos para encontrar las paradas y hago que se muestren los símbolos. ¿Cómo afecta la tasa de pago a los números aleatorios y las paradas? ¿Establezco el pago por los símbolos que están en el carrete y la cantidad de símbolos de pago alto-> bajo contenidos en el carrete?
Kris.Mitchell

@ Kris-Mitchell - Tal vez no entiendo cómo funcionan las máquinas tragamonedas. Supuse que para cada resultado posible, el pago es fijo. Si los símbolos en el carrete cambian cada ronda, las matemáticas se vuelven un poco más difíciles, pero aún así debería poder resolver (fuera de línea, con un lápiz y papel) la probabilidad de un estado determinado. Esto solo le brinda una manera de asegurarse de que un conjunto de pagos le dará la tasa de retorno deseada (promedio); hay infinitas formas de asignar los pagos dada esa restricción, por lo que depende de usted elegir uno "divertido".
Celion

@celion: no era mi intención equivocarte, y si alguien más está leyendo esto, corrígeme si me equivoco, pero el pago es fijo. No creo que los carretes cambien cada ronda. Creo que los carretes para tragamonedas de video son mucho más grandes que una verdadera máquina tragamonedas mecánica. Por cierto, creo que disfrutaría más de la opción 2 o 3. Dos es lo suficientemente arriesgado como para ser un desafío, donde puedes ganar dinero, sin dejar de saber que perderás. Por otro lado, tres parecen ser mejores porque parece que tienes más posibilidades de ganar.
Kris.Mitchell

1

La forma más fácil y confiable de hacer esto no es simulando carretes, sino más bien tener un dado interno que elige lo que gana el jugador y luego llenar el carrete de forma procesal (o tener un gran conjunto de ellos guardado en algún lugar, pero eso probablemente llevará más tiempo para hacer).


0

Los otros no han tocado este bit:

... cómo asegurar adecuadamente que la máquina tendrá una calificación de pago ...

Si usa números completamente al azar, no hay forma de estar seguro. Sin embargo, puede mantener estadísticas de los pagos y ajustar la probabilidad de un pago en tiempo de ejecución utilizando un ciclo de retroalimentación .

Si no ha habido un pago durante algún tiempo, haga que sea más probable que gane, y viceversa.

Puede ejecutar simulaciones de las ejecuciones (deberían hacer un par de billones de iteraciones) para asegurarse de que su ciclo de retroalimentación funcione según lo previsto.


1
Tu solución es innecesaria. Un generador de números aleatorios (RNG) perfecto se acercará a la calificación de pago exacta con el tiempo. Si bien es cierto que usar su función RNG incorporada predeterminada no es realmente aceptable (principalmente debido a la previsibilidad), la solución correcta es usar un mejor RNG, por ejemplo: en.wikipedia.org/wiki/Random_number_generation#Physical_methods . Además, incluida la lógica del juego que no es aleatoria, o "modifica" la calificación de pago, como sugiere, es ilegal en la mayoría de los lugares. Está bien para un sitio web truculento, pero no es un iniciador total para una aplicación del mundo real.
Luke Van en

1
@lukevanin, se requiere legalmente en otros lugares, por lo que realmente es un caso de entender el contexto.
Peter Taylor el

0

Tenga en cuenta que todas las respuestas hasta ahora suponen que tiene un RNG perfecto para trabajar. Un software puro RNG es en realidad un pseudo-RNG, o PRNG para abreviar, porque el mismo valor de entrada (semilla) siempre generará la misma secuencia de números aleatorios, por lo que un PRNG es inherentemente predecible.

Por supuesto, es un problema difícil distinguir los RNG "verdaderos" de los "pseudo" en el lado del cliente, especialmente con un tamaño de muestra pequeño, pero hay una diferencia: en una aplicación donde está involucrado dinero y responsabilidad legal, no lo haría. tomar oportunidades. Si necesita un RNG, lo único peor que no tener un RNG es tener un RNG roto sin saberlo, por lo que esta es una área en la que su empresa nunca debe hacer recortes ni aprender sobre la marcha.

Existen buenos algoritmos de PRNG, pero nunca coincidirán con una fuente física de entropía. Por lo tanto, para que las matemáticas funcionen tanto en la práctica como en la teoría, asegúrese de utilizar el mejor RNG posible: es lo mejor para su empresa, tanto legal como financieramente.


0

Un enfoque muy simple podría consistir en iterar sobre todos los posibles resultados del giro y sumar las ganancias combinadas, en comparación con el dinero total recaudado.

Comience creando los diseños de las ruedas, permita símbolos duplicados si lo desea. Determine los patrones ganadores y los pagos que desea. Ejecute el patrón de rueda a través de un algoritmo para determinar el pago total, divida por el dinero recaudado, esta es su relación de pago.

Si es demasiado alto, agregue más espacios en blanco, o símbolos de pago menores, O baje el patrón de pago (es decir, tres barras simples pueden ser de $ 10 o $ 5). Vuelva a ejecutar el algoritmo hasta que se determine la proporción de pago deseada.

Esto le permite mantener pagos de valor uniforme (no $ 4.58 para un patrón ganador, podría usar $ 5). Es posible que no pueda obtener un pago exacto de, digamos, el 95%, pero con ajustes puede acercarse.

Aquí hay un algoritmo de ejemplo para determinar la relación de pago de un diseño de rueda:

payout = 0.0
collected = 0.0
ratio = 0.0
bet = 1.0
FOREACH symbol1 IN wheel1
  FOREACH symbol2 IN wheel2
    FOREACH symbol3 IN wheel3
      payout = payout + DetermineWinnings(symbol1, symbol2, symbol3, bet)
      collected = collected + bet
    NEXT
  NEXT
NEXT
ratio = payout / collected
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.