Bethropic

Probabilidades de Dice: la verdadera oportunidad de ganar detrás de cada objetivo roll-under y roll-over, por qué el pago se redondea hacia abajo, y cuáles son los objetivos que devuelven el 99% completo

spindle6818 visitas
🌐 Originally written in English· AI translationView original

Un lanzamiento, 9.999 resultados

Dice es el juego más simple del sitio: elige un objetivo, elige Under u Over, y el lanzamiento cae de tu lado o no. La pantalla muestra una oportunidad de ganar y un multiplicador para cada objetivo, y los dos parecen multiplicarse exactamente al 99% — la apuesta devuelta, menos una ventaja de la casa del 1%. El motor es un poco más particular que la pantalla, de dos maneras que ambas cuestan al jugador, y este artículo los precio exactamente.

ENGINE-VERIFIEDOriginalBaseDiceService.kt: getResult() draws nextIntBelow(9999) + 1 and divides by 100, so the result is one of the 9,999 values 0.01 to 99.99 — 0.00 excluded, 99.99 included. getWinChance() is target ÷ 100 for Under and (100 − target) ÷ 100 for Over. checkAndGetMultiplier() is (1 − house edge) ÷ win chance, floored to two decimals. getEarned() compares strictly: Under wins when the result is below the target, Over when it is above. The random number is the first 13 hex digits of HMAC-SHA256 over “clientSeed-nonce-0”, keyed by the server seed, divided by 2⁵²; the client mirror is payoutMultiplier() in dice/diceApi.ts, and diceGame.tsx limits the slider to targets 2.00–98.00.

El servicio de la casa lleva su propia prueba de esta aritmética, DiceHouseEdgeTest, que verifica que ningún objetivo devuelva nunca más del 99% y que el redondeo hacia abajo nunca tome más de un paso de redondeo. Ambos se mantienen. Lo que la prueba no imprime es cuánto devuelve realmente cada objetivo, y esa es la tabla que un jugador necesita.

La oportunidad mostrada y la verdadera oportunidad

La oportunidad de ganar en pantalla se calcula como si el lanzamiento fuera un número continuo de 0 a 100. No lo es: es uno de 9.999 pasos. Roll under un objetivo T gana en los resultados 0.01 hasta T − 0.01, que son 100 × T − 1 de ellos, así que la verdadera oportunidad es (100T − 1) ÷ 9.999. En la mayoría de objetivos la diferencia es invisible; en los más pequeños no lo es.

Roll under un objetivo: resultados ganadores, oportunidad mostrada y verdadera oportunidad

OBJETIVO (UNDER)RESULTADOS GANADORES DE 9.999OPORTUNIDAD MOSTRADAVERDADERA OPORTUNIDAD
2.001992.00%1.9902%
5.004995.00%4.9905%
10.0099910.00%9.9910%
25.002,49925.00%24.9925%
50.004,99950.00%49.9950%
75.007,49975.00%74.9975%
90.008,99990.00%89.9990%
98.009.79998,00%97,9998%

Probabilidad verdadera = (100 × objetivo − 1) ÷ 9.999. Apostar sobre un objetivo T gana en 9.999 − 100T resultados, así que Over T se cotiza exactamente como Under (100 − T): Over 50 también gana en 4.999 resultados.

La brecha es siempre un resultado. Con un objetivo del 50% cuesta 0,005 puntos porcentuales de probabilidad, una centésima de un por ciento de rendimiento; con el objetivo del 2%, lo más ajustado que permite el control deslizante, uno de cada 200 resultados es aproximadamente la mitad de un por ciento de la probabilidad de ganancia, y el rendimiento cae del 99,00% al 98,51% por esa razón únicamente. El mismo hecho explica una pequeña curiosidad: una tirada de exactamente 50,00 pierde tanto Under 50 como Over 50, porque ninguna comparación incluye el objetivo. Sucede una vez en 9.999 tiradas.

El piso de dos decimales

El segundo costo es el multiplicador. El motor divide 0,99 entre la probabilidad de ganancia y mantiene dos decimales, siempre redondeando hacia abajo. Cuando la división es exacta — 0,99 ÷ 0,50 = 1,98, 0,99 ÷ 0,25 = 3,96 — no se pierde nada. Cuando no lo es, al jugador se le paga la cifra truncada: 0,99 ÷ 0,80 = 1,2375, pagado como ×1,23. Con una probabilidad de ganancia alta el multiplicador está cerca de 1, la centésima que se descarta es una parte grande de la ganancia, y el rendimiento cae mucho más que en el extremo inferior.

Lo que paga y devuelve una tirada bajo objetivo, margen de la casa del 1%

OBJETIVO (UNDER)PAGAPROBABILIDAD MOSTRADA × PAGARENDIMIENTO VERDADERO
2,00×49,5099,00%98,51%
5,00×19,8099,00%98,81%
7.00×14.1498.98%98.85%
10.00×9.9099.00%98.91%
13.00×7.6198.93%98.86%
25.00×3.9699.00%98.97%
40.00×2.4798.80%98.79%
50.00×1.9899.00%98.99%
70.00×1.4198.70%98.70%
80.00×1.2398.40%98.40%
90.00×1.1099.00%99.00%
95.00×1.0498.80%98.80%
97.06×1.0198.03%98.03%
98.00×1.0198.98%98.98%

Rendimiento verdadero = multiplicador × (100 × objetivo − 1) ÷ 9.999. En 90.00 es 98.999%, el más alto en el control; en 97.06 es 98.030%, el más bajo. Los objetivos Over reflejan estas filas: Over T devuelve lo que devuelve Under (100 − T).

Lee las dos columnas de la derecha juntas y los dos costos se separan claramente. En objetivos bajos el multiplicador generalmente se divide exactamente y toda la diferencia es el resultado faltante; en objetivos altos el resultado faltante es insignificante y la diferencia es casi todo floor. El objetivo 80 es el caso más claro: 0.99 ÷ 0.8 necesita ×1.2375, la tabla paga ×1.23, y el rendimiento es 98.40% — un house edge de 1.6%, no 1%. Cada objetivo entre 97.06 y 98.00 paga el mismo ×1.01, así que la probabilidad que sacrificas al moverte a 97.06 no compra nada.

Sobre todo el control — cada objetivo desde 2.00 hasta 98.00 en pasos de 0.01, 9.601 configuraciones — el rendimiento verdadero promedia 98.72%. Solo 585 de esas configuraciones, 6.1%, devuelven 98.95% o más; 1.453, 15.1%, devuelven menos de 98.50%.

Escribe el multiplicador, no el porcentaje

El juego tiene una segunda manera de establecer una apuesta: escribe el multiplicador que deseas, y calcula el objetivo. Elige el objetivo cuyo pago redondeado es al menos lo que escribiste, así que un multiplicador escrito siempre aterriza en una configuración donde 0.99 ÷ probabilidad se divide limpiamente. Eso elimina el costo floor por completo; solo la brecha de un resultado permanece.

Multiplicadores escritos y los objetivos a los que se resuelven

ESCRITOOBJETIVO (UNDER)PROBABILIDAD VERDADERARENDIMIENTO VERDADERO
×1.1090.0089.9990%99.00%
×1.2082.5082.4982%99.00%
×1.5066.0065.9966%98.99%
×249.5049.4949%98.99%
×333.0032.9933%98.98%
×519.8019.7920%98.96%
×109.909.8910%98.91%
×204.954.9405%98.81%
×49.502.001.9902%98.51%

targetForMultiplier() en dice/diceApi.ts redondea hacia abajo el target Under (o hacia arriba el Over) para que la probabilidad nunca suba por encima de la que el multiplicador escrito implica. Devuelve redondeado a dos decimales; ×1.10 es 98.999% y ×1.20 98.998%.

La regla práctica es simple. Si te importa el último medio punto, establece el multiplicador en lugar del porcentaje, y prefiere multiplicadores redondos en el extremo bajo del rango de pago. Un target elegido porque se ve redondo como porcentaje — 80, 70, 40 — suele ser peor precio que el target un tick más allá. Nada de esto cambia la dirección a largo plazo: cada configuración devuelve menos que la apuesta, y la martingala, con precio y riesgo de ruina explican por qué ninguna secuencia de apuestas arregla eso.

Limbo evita el redondeo por construcción: el jugador nombra el pago directamente y el número extraído se compara contra esa misma cifra, por lo que no hay un segundo redondeo que pagar. Dice cita una probabilidad y deriva el pago de ella, y esa derivación es donde entra el redondeo.

Verificando una tirada tú mismo

  1. Antes de jugar, el panel de equidad muestra la huella SHA-256 de la semilla del servidor. Rota tu par de semillas después para revelar la semilla y confirmar la huella.
  2. Calcula HMAC-SHA256 con la semilla del servidor como clave y "clientSeed-nonce-0" como mensaje; una tirada usa cursor 0 solamente.
  3. Lee los primeros 13 dígitos hexadecimales del resumen como un número entero y divide por 2⁵² para obtener u. El resultado es (floor(u × 9,999) + 1) ÷ 100. Compáralo con tu objetivo, estrictamente, y el multiplicador en tu ticket con 0.99 ÷ chance redondeado a dos decimales.

Si el resultado coincide, fue fijado antes de elegir un objetivo — lo que, como lo que una prueba de compromiso de hash demuestra explica, es lo que el compromiso garantiza y todo lo que garantiza. El precio del objetivo no está en el hash. Está en las dos líneas de aritmética arriba, por eso existe este artículo.

Preguntas frecuentes

¿Cuáles son las probabilidades reales en un juego de dados que sale de 0 a 100?

Aquí el resultado es uno de 9,999 resultados de 0.01 a 99.99. Ganar bajo T ocurre en 100 × T − 1 de ellos, así que bajo 50 es 49.995%, bajo 10 es 9.991% y bajo 2 es 1.990%.

¿Cuál es la ventaja de la casa en dados?

La ventaja indicada es 1%, pero el retorno verdadero depende del objetivo: desde 99.00% en un objetivo de 90 hasta 98.03% en 97.06. Promediado en todos los ajustes del slider de 2.00 a 98.00 es 98.72%, una ventaja efectiva de 1.28%.

¿Por qué mi multiplicador de dados se ve redondeado hacia abajo?

El motor paga 0.99 ÷ probabilidad de ganar redondeado a dos decimales. En un objetivo de 80% eso es 1.2375, pagado como ×1.23, lo que retorna 98.40% en lugar de 99%.

¿Cuál es el mejor objetivo a elegir en dados?

Cualquier objetivo donde 0.99 ÷ probabilidad divida exactamente, como 50 (×1.98), 25 (×3.96), 90 (×1.10) o 66 (×1.50). Escribir el multiplicador en lugar del porcentaje encuentra uno automáticamente. Ningún objetivo retorna más de 99%.

¿Qué pasa si el resultado de los dados cae exactamente en mi objetivo?

Pierde. Bajo gana solo por debajo del objetivo y Sobre solo por encima, así que un resultado de exactamente 50.00 pierde tanto Bajo 50 como Sobre 50. Sucede una vez en 9,999 tiradas.

¿Puedo verificar una tirada de dados?

Sí. HMAC-SHA256 de "clientSeed-nonce-0" codificado con la semilla de servidor revelada; los primeros 13 dígitos hexadecimales sobre 2⁵² dan u, y (floor(u × 9,999) + 1) ÷ 100 es el resultado.

FUENTES Y REFERENCIAS

  • Código fuente del motor Betkyo, servicio de casa: OriginalBaseDiceService.kt — getResult() (nextIntBelow(9999) + 1, sobre 100), getWinChance() (piso de 4 decimales), checkAndGetMultiplier() ((1 − ventaja de casa) ÷ probabilidad de ganar, piso de 2 decimales), getEarned() (comparación estricta); SeedPairRandom y PfHashUtils.normalize() (primeros 13 dígitos hexadecimales ÷ 2⁵²); DiceHouseEdgeTest.kt
  • Código fuente del motor Betkyo, espejo del cliente: payoutMultiplier() y targetForMultiplier() en dice/diceApi.ts; los límites del slider 2.00–98.00 en diceGame.tsx
  • Cálculo exacto escrito para este artículo: (100T − 1) ÷ 9,999 probabilidades de ganar y multiplicadores redondeados para los 9,601 objetivos del slider, sus retornos verdaderos y distribución; verificado cruzado replicando 400,000 tiradas del flujo HMAC a través de la derivación de resultados (tirada bajo 50: 49.88% simulado vs 49.995% exacto; resultados se extendieron de 0.01 a 99.99)

LOS JUEGOS EN ESTE ARTÍCULO

Dados — reglas y juego gratis →

Probabilidades de Dice: la verdadera oportunidad de ganar detrás de cada objetivo roll-under y roll-over, por qué el pago se redondea hacia abajo, y cuáles son los objetivos que devuelven el 99% completo

Comentarios (0)

Aún no hay comentarios.