Una riga di aritmetica
Limbo non ha tavolo, carte o ruota. Digiti un moltiplicatore target, il motore estrae un numero, e vinci se il numero è almeno il tuo target — nel qual caso ricevi il tuo target moltiplicato la tua puntata. Questo è l'intero gioco, e rende limbo il gioco di casinò più facile da quotare, perché il numero proviene da una formula con un solo input casuale.
ENGINE-VERIFIEDcurve100() in _shared/rng.ts: the outcome in hundredths is floor((0.99 ÷ (1 − u)) × 100), clamped to the range 100 to 1,000,000, where u is the uniform number in [0, 1) read from the round’s HMAC — the first eight bytes of the digest as hi ÷ 2³² + lo ÷ 2⁶⁴ (u64()). demoLimboBet() in _shared/demoLocal.ts draws u at cursor 0, sets win = outcome100 ≥ target100 and pays stake × target100 ÷ 100 floored to the cent. limboGame.tsx accepts targets from 101 to 1,000,000 hundredths (×1.01 to ×10,000.00) and shows the win chance as 99 ÷ target.
Leggi la formula da dentro verso fuori. Il numero casuale u è distribuito uniformemente tra 0 e 1. Dividere 0,99 per 1 − u trasforma quella distribuzione uniforme in una curva: u vicino a 0 dà un numero vicino a ×0,99, u vicino a 1 dà un numero che corre verso l'infinito. Il ×100 e il floor lo trasformano in una figura con due decimali, e il clamp lo fissa tra ×1,00 e ×10.000,00. Lo 0,99 è il vantaggio della casa, ed è l'unico posto in cui vive il vantaggio.
La probabilità di vincita a ogni target
Vinci al target T quando floor(99 ÷ (1 − u)) è almeno T, scritto in centesimi. Poiché T è un numero intero di centesimi, il floor non fa differenza in quel confronto: un valore di 199,7 si arrotonda a 199 e manca un target di 200, esattamente come farebbe 199,7 stesso. Quindi la condizione è semplicemente 99 ÷ (1 − u) ≥ T, che si riordina a u ≥ 1 − 99 ÷ T. La probabilità che un numero uniforme atterri lì è 99 ÷ T, e questa è l'intera risposta.
| TARGET | PROBABILITÀ DI VINCITA | UNA VINCITA OGNI | RITORNO | VANTAGGIO DELLA CASA | OSCILLAZIONE PER UNITÀ PUNTATA |
|---|---|---|---|---|---|
| ×1.01 | 98,02% | 1,02 round | 99,00% | 1,00% | 0,14 |
| ×1.10 | 90.00% | 1.11 | 99.00% | 1.00% | 0.33 |
| ×1.20 | 82.50% | 1.21 | 99.00% | 1.00% | 0.46 |
| ×1.50 | 66.00% | 1.52 | 99.00% | 1.00% | 0.71 |
| ×1.98 | 50.00% | 2.00 | 99.00% | 1.00% | 0.99 |
| ×2.00 | 49.50% | 2.02 | 99.00% | 1.00% | 1.00 |
| ×3.00 | 33.00% | 3.03 | 99.00% | 1.00% | 1.41 |
| ×5.00 | 19.80% | 5.05 | 99.00% | 1.00% | 1.99 |
| ×10 | 9.90% | 10.1 | 99.00% | 1.00% | 2.99 |
| ×20 | 4.95% | 20.2 | 99.00% | 1.00% | 4.34 |
| ×50 | 1.98% | 50.5 | 99.00% | 1.00% | 6.97 |
| ×100 | 0.99% | 101 | 99.00% | 1.00% | 9.90 |
| ×1.000 | 0.099% | 1.010 | 99.00% | 1.00% | 31,4 |
| ×10.000 | 0.0099% | 10.101 | 99.00% | 1.00% | 99,5 |
Probabilità di vincita = 99 ÷ target, esatto. Rendimento = target × probabilità di vincita = 0.99 su ogni riga. Lo swing è la deviazione standard del risultato di un round per unità puntata, √(0.99 × target − 0.9801); è il numero che cresce, non il prezzo.
Le due colonne centrali sono il punto della tabella e non si muovono. Il target è sia l'ostacolo che la vincita, quindi aumentarlo riduce la probabilità di vincita esattamente nella proporzione che aumenta il premio, e il prodotto rimane 0.99. Un giocatore che sta a ×1.10 e un giocatore che spara a ×1.000 stanno pagando lo stesso 1% per ogni unità che puntano; uno di loro lo sta pagando in un flusso costante e l'altro in lunghi periodi di siccità interrotti da una vincita. L'ultima colonna misura la differenza. A ×2 il risultato di un round oscilla di circa una puntata; a ×1.000, di trentuno puntate; al limite, di cento.
Una riga merita una seconda occhiata. A ×1.98 la probabilità di vincita è esattamente il 50%, il che rende ×1.98 il risultato mediano: metà di tutti i round finisce sopra e metà sotto. Il numero tondo ×2.00 è un lancio di moneta con un handicap di 0,5 punti, 49.50%, e quel mezzo punto è dove il vantaggio dell'1% si trova a quel target. Ogni altro target nasconde lo stesso vantaggio allo stesso modo — un gioco equo pagherebbe ×2.0202 per una probabilità del 49.5%, e il motore paga ×2.
Questa è la parte di limbo che differisce da un gioco di dadi con moltiplicatore a due decimali. Lì, il payout è derivato dalla chance scelta e arrotondato, e l'arrotondamento può costare al giocatore alcuni centesimi di punto in alcune impostazioni. In limbo il giocatore nomina direttamente il payout, in centesimi, e la formula confronta il numero estratto con quella stessa cifra; non c'è un secondo arrotondamento da pagare. Il floor nella formula decide solo quali due decimali appaiono sullo schermo. L'articolo del verificatore spiega perché quel singolo floor deve essere riprodotto esattamente quando controlli un round.
Dove il numero si ferma quando nessuno sta mirando
La stessa formula descrive il numero estratto stesso, indipendentemente da qualsiasi target. La chance che raggiunga almeno ×x è 0.99 ÷ x, per qualsiasi x da ×1.01 in su, e questo dà l'intera distribuzione di quello che lo schermo mostra.
| INTERVALLO | QUOTA DI ROUND | INFO |
|---|---|---|
| ×1.00 (sotto ogni target) | 1.98% | 1 su 50.5 |
| ×1.01 a ×1.49 | 32.02% | 1 su 3.1 |
| ×1.50 a ×1.99 | 16.50% | 1 su 6.1 |
| ×2.00 a ×2.99 | 16.50% | 1 su 6.1 |
| ×3.00 a ×4.99 | 13.20% | 1 su 7.6 |
| ×5.00 a ×9.99 | 9.90% | 1 su 10.1 |
| ×10 a ×99.99 | 8.91% | 1 su 11.2 |
| ×100 a ×999.99 | 0.891% | 1 su 112 |
| ×1,000 a ×9,999.99 | 0.0891% | 1 su 1,122 |
| ×10,000.00 (il limite massimo) | 0.0099% | 1 su 10,101 |
Ogni riga è 0.99 ÷ (limite inferiore) meno 0.99 ÷ (limite superiore). La prima riga è la probabilità che 99 ÷ (1 − u) sia inferiore a 101 centesimi, u < 2 ÷ 101. L'ultima riga è ogni estrazione che il blocco fissa a 1,000,000 centesimi. Le righe sommano al 100%.
Due di queste righe spiegano la maggior parte di quello che si prova in una sessione di limbo. Circa un round su cinquanta mostra ×1.00, un numero che nessun target può battere: lo 0.99 nella formula significa che la curva inizia sotto ×1.01, e il più basso 1.98% degli estrazioni non lo supera mai. E circa un round su undici mostra ×10 o più, il che è abbastanza frequente da vedersi diverse volte all'ora e da far sembrare raggiungibile un target alto. È raggiungibile — un round su centouno supera ×100 — ma la tabella dice con quale frequenza, e "abbastanza spesso da ricordare" non è la stessa cosa che spesso.
I round su cui non stai scommettendo sono estratti da questa stessa distribuzione, ed è per questo che uno schermo pieno di risultati recenti non porta alcuna informazione sul prossimo. Ogni round è un fresco HMAC di un fresco nonce; un ×500 nella cronologia rende il prossimo ×500 esattamente probabile come prima, 0.198%. Questo è il gambler's fallacy nella sua forma più pura, perché qui l'indipendenza non è un'ipotesi statistica ma una proprietà dell'hash.
Cosa costa inseguire un moltiplicatore alto
Poiché il vantaggio è lo stesso ovunque, la scelta del target è una scelta sulla varianza, e la varianza ha un prezzo facile da dichiarare: quanti round dovresti aspettarti di attendere, e quanto è probabile un'attesa lunga. Con probabilità di vincita p per round, la probabilità di almeno una vincita in N round è 1 − (1 − p)ᴺ.
| TARGET | ROUND | ALMENO UNA VINCITA | NESSUNA VINCITA |
|---|---|---|---|
| ×2 | 10 | 99,89% | 0,11% |
| ×10 | 20 | 87,57% | 12,43% |
| ×10 | 50 | 99,46% | 0,54% |
| ×100 | 100 | 63.03% | 36.97% |
| ×100 | 300 | 94.95% | 5.05% |
| ×1,000 | 1,000 | 62.86% | 37.14% |
| ×1,000 | 3,000 | 94.88% | 5.12% |
1 − (1 − 99 ÷ T)ᴺ. Lo schema si ripete ad ogni scala: puntare sul numero di round del target stesso (100 round a ×100, 1.000 a ×1.000) dà circa il 63% di probabilità di una vincita, e tre volte tanto dà circa il 95%.
Metti una puntata e l'aritmetica diventa fredda. Cento scommesse da un'unità a ×100 costano 100 unità da piazzare e rendono 99 in media — l'1% ancora — ma la media è composta da una probabilità del 63% di recuperare circa 100 e una probabilità del 37% di recuperare nulla. Il giocatore che colpisce una volta in quei cento round non è in vantaggio di molto; quello che colpisce due volte è in vantaggio notevole, e quello che colpisce zero volte ha perso i cento interi. Nulla sul target cambia l'1% che paghi per unità. Tutto cambia come i risultati sono distribuiti tra i giocatori.
La versione a target basso della stessa trappola è la martingala: punta ×2, raddoppia dopo ogni perdita, e incassa un'unità per ogni vincita. La probabilità di vincita a ×2 è 49.50%, una serie di perdite di dieci di fila accade lo 0.11% delle volte, e la undicesima puntata è 1.024 unità. La martingala, quotata lo risolve su una ruota di roulette; le cifre di limbo sono entro un decimo di punto da essa. Rischio di rovina fornisce la formula generale per quanto tempo qualsiasi piano a puntata fissa dura contro un margine dell'1%.
Un dettaglio pratico dal settlement della demo: il payout è stake × target arrotondato al centesimo, quindi una puntata di 0.37 a ×1.23 paga 0.45, non 0.4551. Su puntate intere con un target a due decimali il prodotto è già esatto e nulla si perde; su piccole puntate dispari la frazione di centesimo si perde. I round con soldi veri si sistemano nella precisione della moneta stessa.
Verificare un round da solo
- Prima di giocare, il pannello di correttezza mostra l'impronta SHA-256 del server seed. Ruota la coppia di seed in seguito per rivelare il seed stesso e confermare l'impronta.
- Calcola HMAC-SHA256 con il server seed come chiave e "clientSeed-nonce-0" come messaggio; il round limbo utilizza cursor 0.
- Prendi i primi otto byte del digest come hi ÷ 2³² + lo ÷ 2⁶⁴ per ottenere u, quindi floor(0.99 ÷ (1 − u) × 100), limitato a 100–1.000.000. Questo è il risultato in centesimi, e dovrebbe corrispondere al round fino all'ultima cifra.
Il verificatore open-source esegue i tre step in un comando, `betkyo-verify limbo <serverSeed> <clientSeed> <nonce>`, e stampa il risultato in centesimi. Se corrisponde al round su cui sei stato pagato, il numero era fissato prima che digitassi il tuo target — questo è quello che una commitment prova, e tutto quello che prova; cosa prova una hash commitment traccia quella linea con attenzione.
FAQ
Quali sono le probabilità di vincere in limbo?
Su questo engine, 99 diviso il tuo target: 49.50% a ×2, 9.90% a ×10, 0.99% a ×100 e 0.0099% (uno su 10.101) al limite di ×10.000. La formula è esatta perché il numero estratto è floor(99 ÷ (1 − u)) e il target è un numero intero di centesimi.
Qual è il margine della casa in limbo?
1.00% a ogni target. La probabilità di vincita è 99 ÷ target e il payout è il target, quindi ogni scommessa restituisce il 99.00% della puntata in media. Nessun target moltiplicatore offre un valore migliore di un altro; un target più alto solo rende i risultati più volatili.
Qual è il miglior moltiplicatore target per limbo?
Non c'è un target migliore in aspettativa — costano tutti l'1% per unità scommessa. Target bassi come ×1.10 o ×1.50 pagano importi piccoli spesso; target alti pagano raramente e grandi. Scegli in base a quanta varianza vuoi, non in base al valore, e ricorda che a ×100 hai il 37% di possibilità di nessuna vincita in 100 round.
Quanto spesso limbo crasha a 1.00?
1.98% dei round, circa uno su cinquanta. La formula parte da 0.99 ÷ (1 − u), quindi il 1.98% più basso dei draw produce un numero sotto ×1.01, e nessun target può vincere su quei round.
×2 in limbo è una scommessa 50/50?
Non proprio: 49.50%. Il punto esatto del 50% è ×1.98, che è il risultato mediano. Il gap di mezzo punto tra ×1.98 e ×2.00 è il margine della casa a quel target.
L'arrotondamento nella formula costa qualcosa al giocatore?
No. Il floor in floor(99 ÷ (1 − u)) decide solo i due decimali mostrati; poiché i target sono centesimi interi, floor(x) ≥ T esattamente quando x ≥ T, quindi la probabilità di vincita è 99 ÷ target senza alcuna perdita di arrotondamento. Il payout demo è arrotondato al centesimo, che importa solo su piccole puntate dispari.
FONTI E RIFERIMENTI
- Betkyo engine source: curve100() e u64() in _shared/rng.ts (outcome = floor(0.99 ÷ (1 − u) × 100) limitato a 100–1.000.000; u dai primi otto byte del digest); demoLimboBet() in _shared/demoLocal.ts (cursor 0, win = outcome100 ≥ target100, payout arrotondato ai centesimi); range target e il display della probabilità di vincita 99 ÷ target in limbo/limboGame.tsx
- Calcoli esatti scritti per questo articolo: probabilità di vincita 99 ÷ T per ogni target, la distribuzione dei risultati 0.99 ÷ x, deviazione standard per-round e probabilità di almeno una vincita; cross-checked replicando 400.000 round dello stream HMAC del motore attraverso curve100() (×10: 9.86% simulato vs 9.90% esatto; sotto ×1.01: 1.97% vs 1.98%)
- Verifier provably-fair di Betkyo (GitHub, MIT): il comando limbo riproduce l'esito da serverSeed, clientSeed e nonce
I GIOCHI IN QUESTO ARTICOLO