El número y el reloj
Crash parece una carrera contra un cohete, pero mecánicamente son dos cosas mucho más simples. Antes de que empiece la ronda, el motor extrae un número oculto, el punto de explosión, a partir de un hash comprometido. Luego arranca un reloj y un multiplicador sube siguiendo una curva fija; cuando la curva alcanza el punto de explosión la ronda termina, y todos los que aún estén montados pierden su apuesta. Un cobro — manual, o un objetivo automático fijado antes de la ronda — fija el multiplicador en ese momento y paga apuesta por multiplicador. Nada en el vuelo es aleatorio: lo único aleatorio en la ronda es el número extraído antes de que empiece.
VERIFICADO EN EL MOTORCrashDerivation.crashPoint100() en el servicio de la casa (crash/CrashEngine.kt), reflejado por bust100() en el _shared/rng.ts del cliente: h son los 52 bits superiores de HMAC-SHA256(eslabón de la cadena, salt); con e = 2⁵² y n = 100 el punto de explosión en centésimas es floor((n·e − h) ÷ (e − h)), limitado al rango de 100 a 1.000.000. Esa es la fórmula de bustabit, calculada en enteros para que el verificador del cliente y el servidor coincidan bit a bit. El margen del 1% es la n: n = 101 − 100 × margen de la casa, así que 100 al 1%.
VERIFICADO EN EL MOTORmultiplier100() en el mismo archivo y crashMultiplier() en el crash/api.ts del cliente: el multiplicador en vivo después de t segundos es floor(100 × e^(0.069314718 t)) centésimas, nunca por debajo de 100. La constante de crecimiento es ln 2 ÷ 10, así que el multiplicador se duplica cada diez segundos; msToReach() lo invierte para programar la explosión.
Escribiendo la parte aleatoria como una fracción u = h ÷ 2⁵², distribuida uniformemente entre 0 y 1, la fórmula del punto de explosión se convierte en floor((100 − u) ÷ (1 − u)) centésimas. En u = 0 eso es exactamente 100, una explosión en ×1.00 antes de que la curva se haya movido; a medida que u se acerca a 1, se dispara, y el límite lo detiene en 1.000.000 centésimas, ×10.000. Todo lo que sigue se deriva de esa única línea y de la regla estricta de qué cuenta como ganar.
Estrictamente por encima: la regla que fija el precio
VERIFICADO EN EL MOTORsettleCrash() y applyAutoCashouts() en crash/CrashEngine.kt: un objetivo automático paga solo cuando target < punto de explosión (“auto < crashPoint100”); un objetivo igual al punto de explosión revienta. Durante el vuelo el multiplicador alcanzable está limitado a punto de explosión − 1, así que un objetivo automático se dispara en el instante en que la curva en vivo lo alcanza y nunca por encima del punto de explosión. cashout(): un cobro manual en el multiplicador en vivo m se rechaza cuando m ≥ punto de explosión. El pago es apuesta × multiplicador ÷ 100 redondeado hacia abajo a la unidad bruta de la moneda (mult(), RoundingMode.FLOOR).
Este es el detalle del que dependen las probabilidades. Un objetivo de T centésimas no gana cuando el punto de explosión es igual a T; gana solo cuando el punto de explosión es al menos T + 1. A partir de la fórmula, la probabilidad de que el punto de explosión sea al menos K centésimas es 99 ÷ (K − 1) para cualquier K desde 101 en adelante, así que la probabilidad de que sea al menos T + 1 es 99 ÷ T. Para un objetivo de ×2, eso es 99 ÷ 200 = 49.50%. Multiplica por el pago de ×2 y el retorno es 0.99 — y la T se cancela de la misma manera en cada objetivo.
| OBJETIVO | PROBABILIDAD DE GANAR | UNA VICTORIA EN | RETORNO | MARGEN DE LA CASA | OSCILACIÓN POR UNIDAD APOSTADA | ALCANZADO EN |
|---|---|---|---|---|---|---|
| ×1.01 | 98.02% | 1.02 rondas | 99.00% | 1.00% | 0.14 | 0.14 s |
| ×1.10 | 90.00% | 1.11 | 99.00% | 1.00% | 0.33 | 1.4 s |
| ×1.20 | 82.50% | 1.21 | 99.00% | 1.00% | 0.46 | 2.6 s |
| ×1.50 | 66.00% | 1.52 | 99.00% | 1.00% | 0.71 | 5.8 s |
| ×1.98 | 50.00% | 2.00 | 99.00% | 1.00% | 0.99 | 9.9 s |
| ×2.00 | 49.50% | 2.02 | 99.00% | 1.00% | 1.00 | 10.0 s |
| ×3.00 | 33.00% | 3.03 | 99.00% | 1.00% | 1.41 | 15.8 s |
| ×5.00 | 19.80% | 5.05 | 99.00% | 1.00% | 1.99 | 23.2 s |
| ×10 | 9.90% | 10.1 | 99.00% | 1.00% | 2.99 | 33.2 s |
| ×20 | 4.95% | 20.2 | 99.00% | 1.00% | 4.34 | 43.2 s |
| ×50 | 1.98% | 50.5 | 99.00% | 1.00% | 6.97 | 56.4 s |
| ×100 | 0.99% | 101 | 99.00% | 1.00% | 9.90 | 66.4 s |
| ×1,000 | 0.099% | 1,010 | 99.00% | 1.00% | 31.4 | 99.7 s |
| ×9,999.99 | 0.0099% | 10,101 | 99.00% | 1.00% | 99.5 | 132.9 s |
La probabilidad de ganar = 99 ÷ T, donde T es el objetivo en centésimas, exacta bajo la regla estricta. El retorno = objetivo × probabilidad de ganar = 0.99 en cada fila. La oscilación es la desviación estándar del resultado de una ronda por unidad apostada, √(0.99 × objetivo − 0.9801). "Alcanzado en" es 10 × log₂(objetivo) segundos en la curva de duplicación. El objetivo más bajo que acepta el formulario de apuesta es ×1.01; ×10,000.00 es el propio límite de explosión y un objetivo ahí nunca puede estar estrictamente por debajo del bust, así que ×9,999.99 es el tope de la tabla.
Las dos columnas del medio no se mueven. El Crash bajo esta regla tiene el mismo precio que el limbo: 1% de cada unidad apostada, cualquiera sea el objetivo que elijas, ya sea que retires a mano en ×1.37 o pongas un objetivo automático en ×500. Lo que cambia el objetivo es la forma del resultado — una racha de pequeñas victorias en ×1.10, una sequía rota por un golpe de suerte en ×1,000 — y las dos últimas columnas miden eso. En ×2 una ronda oscila cerca de una apuesta; en ×1,000, cerca de treinta y una apuestas. El camino hasta ×1,000 también toma cien segundos, que es un tipo de costo diferente.
Una fila merece una segunda mirada. ×1.98 gana exactamente la mitad de las veces, lo que la convierte en el punto de bust mediano: la mitad de todas las rondas explotan por encima de ×1.98 y la otra mitad en ×1.98 o por debajo. El número redondo ×2.00 es una moneda al aire con una desventaja de medio punto, 49.50%, y ese medio punto es donde vive el 1% en ese objetivo.
Visto versus pagado: la brecha de una centésima
Hay dos preguntas que suenan parecido y no lo son. ¿Con qué frecuencia la curva muestra ×2.00? ¿Y con qué frecuencia se paga un objetivo de ×2.00? La primera es la probabilidad de que el punto de bust sea de al menos 200 centésimas, 99 ÷ 199 = 49.75%. La segunda es la probabilidad de que sea de al menos 201, 99 ÷ 200 = 49.50%. La diferencia, una ronda de cada 402, es la ronda que explota exactamente en ×2.00: la pantalla llega al número y el ticket pierde.
| MULTIPLICADOR | LA CURVA LO ALCANZA | EL OBJETIVO SE PAGA | REVIENTA EXACTAMENTE EN ÉL |
|---|---|---|---|
| ×1.01 | 99.00% | 98.02% | 0.98%, 1 de cada 102 |
| ×1.10 | 90.83% | 90.00% | 0.83%, 1 de cada 121 |
| ×1.50 | 66.44% | 66.00% | 0.44%, 1 de cada 226 |
| ×2.00 | 49.75% | 49.50% | 0.25%, 1 de cada 402 |
| ×3.00 | 33.11% | 33.00% | 0.11%, 1 de cada 906 |
| ×5.00 | 19.84% | 19.80% | 0.040%, 1 de cada 2,520 |
| ×10 | 9.910% | 9.900% | 0.0099%, 1 de cada 10,091 |
| ×100 | 0.9901% | 0.9900% | 1 de cada 1,010,000 |
Alcances = 99 ÷ (T − 1); pagado = 99 ÷ T; la diferencia es 99 ÷ (T (T − 1)), la masa de probabilidad en la centésima única T. La brecha importa en objetivos bajos y desaparece en los altos.
Esta brecha es la razón por la que el motor sortea el punto de busteo como un número entero de centésimas en lugar de un decimal que se redondea después. Con un sorteo entero, la regla estricta entrega exactamente una centésima de la distribución a la casa en cada objetivo, y esa centésima es lo que hace que el retorno salga en 0.99 en lugar de un poco por encima. Nuestra comparación anterior de limbo y crash fijó el precio de crash desde la columna “lo alcanza”, 99x ÷ (100x − 1), y concluyó que las rondas cortas eran fraccionalmente más baratas que el 99%. Esa era la columna equivocada: bajo la liquidación estricta del motor, el precio es 99.00% en cada objetivo, y el artículo ahora lleva una corrección.
Dónde cae el bust cuando nadie apunta a nada
La misma fórmula describe la ronda en sí, sin importar lo que nadie apueste. La probabilidad de que el punto de busteo esté al menos en K centésimas es 99 ÷ (K − 1), y eso da toda la distribución de lo que muestra la barra de historial.
| RANGO | PORCENTAJE DE RONDAS | APROX. | CUÁNTO DURA LA RONDA |
|---|---|---|---|
| ×1.00 (explosión instantánea) | 1.00% | 1 de cada 100 | 0 s |
| ×1.01 a ×1.99 | 49.25% | 1 de cada 2.0 | 0.1 a 9.9 s |
| ×2.00 a ×9.99 | 39.84% | 1 de cada 2.5 | 10 a 33 s |
| ×10 a ×99.99 | 8.92% | 1 de cada 11.2 | 33 a 66 s |
| ×100 a ×999.99 | 0.891% | 1 de cada 112 | 66 a 100 s |
| ×1.000 a ×9.999,99 | 0.0891% | 1 de cada 1.122 | 100 a 133 s |
| ×10.000,00 (el tope) | 0.0099% | 1 de cada 10.101 | 133 s |
Cada fila es 99 ÷ (inferior − 1) menos 99 ÷ superior, en centésimas. La primera fila es la probabilidad de que (100 − u) ÷ (1 − u) caiga por debajo de 101, u < 1 ÷ 100. La última fila es cada tirada que el límite fija en 1.000.000 de centésimas. Las filas suman 100%. Las duraciones son 10 × log₂(multiplicador) segundos.
Dos filas explican la mayor parte de lo que se siente en una sesión de crash. Exactamente una ronda de cada cien revienta en ×1.00, antes de que la curva se haya movido una sola centésima, y ningún objetivo —ni siquiera ×1.01— se paga en ella. Y aproximadamente una ronda de cada diez llega a ×10, lo cual es lo bastante frecuente como para verse varias veces por hora y hacer que un objetivo alto parezca alcanzable. Es alcanzable; la tabla dice con qué frecuencia, y "lo bastante frecuente como para recordarlo" es un número distinto de frecuente. La ronda mediana revienta en ×1.98, justo antes de los diez segundos, y la ronda promedio dura 14.3 segundos porque los vuelos largos, raros, elevan la media.
Las rondas en las que no participaste se extraen de esta misma distribución, y cada una de ellas es un HMAC nuevo de un nuevo eslabón de cadena. Un ×500 en el historial hace que el próximo ×500 sea exactamente tan probable como antes, 0.198%. Eso es la falacia del jugador en su forma más pura — aquí la independencia no es una suposición estadística sino una propiedad del hash.
Lo que cuesta perseguir un multiplicador grande
Como el margen de la casa es el mismo en todas partes, elegir el objetivo es elegir la varianza, y la varianza tiene un precio fácil de expresar: cuántas rondas deberías esperar hasta ganar, y qué tan probable es una espera larga. Con probabilidad de ganar p por ronda, la probabilidad de al menos una victoria en N rondas es 1 − (1 − p)ᴺ.
| OBJETIVO | RONDAS | AL MENOS UNA VICTORIA | NINGUNA VICTORIA | TIEMPO EN LA MESA |
|---|---|---|---|---|
| ×2 | 10 | 99.89% | 0.11% | alrededor de 4 min |
| ×10 | 20 | 87.57% | 12.43% | alrededor de 8 min |
| ×10 | 50 | 99.46% | 0.54% | alrededor de 20 min |
| ×100 | 100 | 63.03% | 36.97% | unos 41 min |
| ×100 | 300 | 94.95% | 5.05% | unas 2 h |
| ×1,000 | 1,000 | 62.86% | 37.14% | unas 7 h |
| ×1,000 | 3,000 | 94.88% | 5.12% | unas 20 h |
1 − (1 − 99 ÷ T)ᴺ, idéntico a limbo porque la probabilidad de ganar es la misma. El tiempo asume un vuelo promedio de 14.3 s más la ventana de apuestas de diez segundos, 24.3 s por ronda; una sesión a ×1,000 está dominada por la espera, no por el vuelo.
Apuesta algo y la aritmética se vuelve fría. Cien apuestas de una unidad a ×100 cuestan 100 unidades en total y devuelven 99 de media — el 1% otra vez — pero esa media se compone de un 63% de probabilidad de recuperar aproximadamente 100 y un 37% de probabilidad de no recuperar nada. Nada relacionado con el objetivo cambia el 1% que pagas por unidad. Lo que sí cambia es cómo se distribuyen los resultados entre los jugadores, y en crash también cambia cuánto tiempo pasas mirando una curva.
La versión de objetivo bajo de la misma trampa es la martingala: retirar en ×2, duplicar tras cada pérdida y cobrar una unidad por victoria. La probabilidad de ganar en ×2 es del 49.50%, una racha perdedora de diez ocurre el 0.11% de las veces, y la apuesta número once es de 1,024 unidades. The martingale, priced desarrolla esto sobre una ruleta; las cifras de crash están a una décima de punto de distancia. Risk of ruin da la fórmula general de cuánto dura cualquier plan de apuesta fija frente a una ventaja del 1%.
Retirarse manualmente
Un retiro manual se paga al centésimo exacto que muestre el multiplicador en vivo cuando el servidor recibe la orden, siempre que ese centésimo esté estrictamente por debajo del punto de explosión. La curva no avanza de forma uniforme: floor(100 × e^(0.0693 t)) avanza un centésimo cada 143 ms cerca de ×1.01, cada 72 ms alrededor de ×2, cada 14 ms alrededor de ×10 y cada 1.4 ms alrededor de ×100. Una mano sobre el botón en ×10 está eligiendo un número con un margen de unas pocas centésimas, en ×100 con un margen de unas pocas décimas, y el centésimo que finalmente se registra depende tanto de la latencia de red como de la intención. Nada de esto cambia el precio — cada centésimo se paga exactamente al 99% en valor esperado — pero sí significa que un objetivo manual por encima de ×10 es un instrumento menos preciso que un objetivo automático, que se dispara exactamente en el número que escribiste.
VERIFICADO POR EL MOTORcrashGame.tsx: el cliente muestra un objetivo automático como cobrado en el instante en que floor(multiplicador en vivo × 100) lo alcanza, lo cual coincide con el applyAutoCashouts() del servidor, que bloquea el ticket exactamente en el objetivo y rechaza un retiro manual posterior sobre él. bet(): un objetivo automático por debajo de 101 centésimas (×1.01) es rechazado.
Un detalle práctico de la liquidación: el pago es apuesta × multiplicador ÷ 100 redondeado hacia abajo a la unidad más pequeña de la moneda, así que una apuesta de 0.37 a ×1.23 paga 0.45, no 0.4551. En apuestas redondas con un multiplicador de dos decimales el producto es exacto y no se pierde nada; en apuestas pequeñas e impares, la fracción de unidad sí se pierde.
Verificar una ronda tú mismo
- Antes de la ronda, el panel muestra el hash de compromiso de la cadena y la sal. Después de la ronda revela el enlace de la cadena para esa ronda; al aplicar hash a ese enlace debe obtenerse el enlace de la ronda anterior, que es como la cadena demuestra que el orden se fijó de antemano.
- Calcula HMAC-SHA256 usando el enlace revelado como clave y la sal como mensaje. Toma los primeros 52 bits del resumen — los primeros trece caracteres hexadecimales — como h.
- Calcula floor((100 × 2⁵² − h) ÷ (2⁵² − h)) con aritmética entera y límítalo entre 100 y 1,000,000. Ese es el punto de explosión en centésimas, y debería coincidir con el número en que explotó la ronda.
Cualquier herramienta de HMAC-SHA256 y una calculadora de enteros grandes sirven; el ayudante HMAC compartido del verificador de código abierto usa la misma primitiva. La división entera no es opcional: una versión en punto flotante discrepa del servidor en los límites de redondeo hacia abajo, que es exactamente la centésima sobre la que trata la regla estricta. One rounding, not many explica por qué el verificador reproduce la aritmética del servidor en lugar de aproximarla.
Preguntas frecuentes
¿Cuáles son las probabilidades de ganar en ×2 en crash?
49.50% en este motor. Un objetivo paga solo cuando la ronda explota estrictamente por encima de él, y la probabilidad de que el punto de explosión sea de al menos 201 centésimas es 99 ÷ 200. La curva alcanza ×2.00 un poco más a menudo, 49.75%; la diferencia es esa una ronda de cada 402 que explota exactamente en ×2.00.
¿Cuál es la ventaja de la casa en crash?
1.00% en cualquier objetivo de retiro, manual o automático. La probabilidad de ganar es 99 ÷ objetivo en centésimas y el pago es el objetivo, así que toda apuesta devuelve en promedio el 99.00% de la apuesta — el mismo precio que limbo en este motor.
¿Con qué frecuencia explota crash en 1.00?
Exactamente el 1% de las rondas, una de cada cien. El punto de explosión es floor((100 − u) ÷ (1 − u)) centésimas, que es 100 siempre que u esté por debajo de 1 ÷ 100. Ningún objetivo, ni siquiera ×1.01, se paga en esas rondas.
¿Cuál es el mejor multiplicador de retiro para crash?
Ninguno en valor esperado: cada objetivo cuesta 1% por unidad apostada. Los objetivos bajos pagan montos pequeños con frecuencia y mantienen la variación cerca de una apuesta; los objetivos altos pagan raramente y varían por decenas de apuestas. ×1.98 es el punto exacto de 50/50 y la caída mediana.
¿Cuánto dura una ronda de crash?
El multiplicador se duplica cada diez segundos, así que ×2 llega a los 10.0 s, ×10 a los 33.2 s, ×100 a los 66.4 s y el tope de ×10,000 a los 132.9 s. La ronda mediana revienta justo antes de los diez segundos; la ronda promedio dura 14.3 segundos.
¿Puede un objetivo automático de ×10,000 pagar alguna vez?
No. ×10,000.00 es el tope de caída, y un objetivo debe estar estrictamente por debajo de la caída para pagar, así que el objetivo más alto que puede pagar alguna vez es ×9,999.99, una vez cada 10,101 rondas.
¿Es crash más barato que limbo para recorridos cortos?
No en este motor. Un artículo anterior calculó el precio de crash a partir de la probabilidad de que la curva alcance un multiplicador y encontró 99.99% en ×1.01; bajo la liquidación estricta, la probabilidad que cuenta es una centésima más baja, y el retorno es exactamente 99.00% en cada objetivo, igual que en limbo.
FUENTES Y REFERENCIAS
- Código fuente del motor Betkyo, servicio de la casa: CrashDerivation.crashPoint100(), multiplier100(), msToReach(), applyAutoCashouts(), settleCrash(), mult() y cashout() en crash/CrashEngine.kt (punto de caída entero tipo bustabit, liquidación estricta "objetivo < punto de caída", pago redondeado a la unidad, objetivo automático mínimo de ×1.01)
- Código fuente del motor Betkyo, cliente: bust100() y h52() en _shared/rng.ts (la misma fórmula entera, BigInt); CRASH_GROWTH_R y crashMultiplier() en crash/api.ts; la regla de visualización del auto-cashout en crash/crashGame.tsx
- Cálculos exactos elaborados para este artículo: P(caída ≥ K) = 99 ÷ (K − 1) para K ≥ 101 a partir de la fórmula entera, la probabilidad de ganar bajo la regla estricta 99 ÷ T, la brecha entre alcanzado y pagado 99 ÷ (T (T − 1)), la distribución de caídas por rango, los tiempos de vuelo 10 × log₂(x), el vuelo medio de 14.3 s sumado sobre los 999,900 valores de caída, y las probabilidades de al menos una victoria
LOS JUEGOS DE ESTE ARTÍCULO