एक पंक्ति अंकगणित
Limbo के पास कोई बोर्ड, कार्ड या पहिया नहीं है। आप एक target multiplier टाइप करते हैं, engine एक नंबर निकालता है, और आप जीतते हैं यदि नंबर कम से कम आपके target के बराबर है — जिस स्थिति में आपको आपके stake का target गुना भुगतान किया जाता है। यह पूरा खेल है, और यह limbo को price करने के लिए सबसे आसान casino game बनाता है, क्योंकि नंबर एक सूत्र से आता है जिसमें एक random input है।
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.
सूत्र को अंदर से बाहर की ओर पढ़ें। random number u को 0 और 1 के बीच समान रूप से फैलाया जाता है। 1 − u से 0.99 को विभाजित करने से वह समान फैलाव एक curve में बदल जाता है: u 0 के पास देता है एक नंबर ×0.99 के पास, u 1 के पास देता है एक नंबर जो infinity की ओर दौड़ता है। ×100 और floor इसे दो दशमलव वाली एक संख्या में बदल देते हैं, और clamp इसे ×1.00 और ×10,000.00 के बीच में रखता है। 0.99 house edge है, और यह एकमात्र जगह है जहां edge रहता है।
हर target पर win chance
आप target T पर जीतते हैं जब floor(99 ÷ (1 − u)) कम से कम T है, hundredths में लिखा हुआ है। क्योंकि T hundredths की एक पूरी संख्या है, floor उस तुलना में कोई फर्क नहीं डालता: 199.7 का एक मान 199 में फर्श होता है और 200 के target को मिस करता है, बिल्कुल जैसे 199.7 स्वयं करता। तो शर्त सरल है 99 ÷ (1 − u) ≥ T, जो u ≥ 1 − 99 ÷ T में फिर से व्यवस्थित होता है। एक uniform number वहां उतरने का chance 99 ÷ T है, और वह पूरा उत्तर है।
| TARGET | WIN CHANCE | ONE WIN IN | RETURN | HOUSE EDGE | SWING PER UNIT STAKED |
|---|---|---|---|---|---|
| ×1.01 | 98.02% | 1.02 rounds | 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 |
जीतने की संभावना = 99 ÷ लक्ष्य, बिल्कुल सटीक। रिटर्न = लक्ष्य × जीतने की संभावना = हर पंक्ति में 0.99। Swing एक राउंड के परिणाम का मानक विचलन है प्रति यूनिट दांव के, √(0.99 × लक्ष्य − 0.9801); यह वह संख्या है जो बढ़ती है, कीमत नहीं।
बीच की दो कॉलम तालिका का मुख्य बिंदु हैं, और वे हिलती नहीं हैं। लक्ष्य पूर्ति और भुगतान दोनों है, इसलिए इसे बढ़ाने से जीतने की संभावना कम होती है बिल्कुल उसी अनुपात में जो पुरस्कार को बढ़ाता है, और उत्पाद 0.99 पर रहता है। एक खिलाड़ी जो ×1.10 पर बैठा है और एक खिलाड़ी जो ×1,000 पर फायर करता है वे हर यूनिट के लिए समान 1% का भुगतान कर रहे हैं जो वे दांव लगाते हैं; उनमें से एक इसे एक स्थिर धारा में भुगतान कर रहा है और दूसरा लंबी सूखी अवधि में एक बड़ी जीत से टूटे हुए। अंतिम कॉलम अंतर को मापता है। ×2 पर एक राउंड का परिणाम लगभग एक दांव से झूलता है; ×1,000 पर, इकतीस दांव से; सीमा पर, सौ से।
एक पंक्ति दूसरी नज़र लायक है। ×1.98 पर जीतने की संभावना बिल्कुल 50% है, जो ×1.98 को माध्य परिणाम बनाता है: सभी राउंड का आधा इससे ऊपर समाप्त होता है और आधा नीचे। गोल संख्या ×2.00 एक सिक्का उछाल है 0.5 पॉइंट के handicap के साथ, 49.50%, और वह आधा पॉइंट वह है जहां 1% edge उस लक्ष्य पर बैठा है। हर दूसरा लक्ष्य एक ही तरीके से एक ही edge को छुपाता है — एक निष्पक्ष गेम 49.5% chance के लिए ×2.0202 का भुगतान करेगा, और इंजन ×2 का भुगतान करता है।
यह limbo का वह हिस्सा है जो दो-दशमलव multiplier वाले डाइस गेम से अलग है। वहां, payout चुने गए chance से निकाला जाता है और rounded किया जाता है, और rounding कुछ settings में खिलाड़ी को कुछ सौवां अंक खर्च कर सकता है। limbo में खिलाड़ी payout सीधे नाम देता है, सौवां में, और formula drawn number को उसी figure से compare करता है; भुगतान के लिए कोई दूसरा rounding नहीं है। formula में floor केवल यह तय करता है कि स्क्रीन पर कौन से दो decimals दिखाई देते हैं। verifier article बताता है कि जब आप एक round को check करते हैं तो उस single floor को exactly कैसे reproduce करना है।
जब कोई लक्ष्य नहीं रख रहा हो तो number कहां landing करता है
वही formula drawn number को ही describe करता है, किसी भी target की परवाह किए बिना। संभावना कि यह कम से कम ×x तक पहुंचे वह है 0.99 ÷ x, किसी भी x के लिए ×1.01 से ऊपर, और यह स्क्रीन पर जो दिखता है उसका पूरा distribution देता है।
| RANGE | SHARE OF ROUNDS | ABOUT |
|---|---|---|
| ×1.00 (every target से नीचे) | 1.98% | 1 in 50.5 |
| ×1.01 to ×1.49 | 32.02% | 1 in 3.1 |
| ×1.50 to ×1.99 | 16.50% | 1 in 6.1 |
| ×2.00 to ×2.99 | 16.50% | 1 in 6.1 |
| ×3.00 to ×4.99 | 13.20% | 1 in 7.6 |
| ×5.00 to ×9.99 | 9.90% | 1 in 10.1 |
| ×10 to ×99.99 | 8.91% | 1 in 11.2 |
| ×100 to ×999.99 | 0.891% | 1 in 112 |
| ×1,000 to ×9,999.99 | 0.0891% | 1 in 1,122 |
| ×10,000.00 (the cap) | 0.0099% | 1 in 10,101 |
प्रत्येक पंक्ति 0.99 ÷ (निचली सीमा) माइनस 0.99 ÷ (ऊपरी सीमा) है। पहली पंक्ति इस बात की संभावना है कि 99 ÷ (1 − u) 101 सौवें से नीचे आता है, u < 2 ÷ 101। अंतिम पंक्ति वह ड्रॉ है जो क्लैम्प को 1,000,000 सौवें तक पिन करता है। पंक्तियां 100% तक जोड़ी जाती हैं।
इनमें से दो पंक्तियां समझाती हैं कि limbo सत्र कैसा महसूस होता है। लगभग 50 में से एक राउंड ×1.00 दिखाता है, एक ऐसी संख्या जिसे कोई टार्गेट नहीं हरा सकता: फॉर्मूला में 0.99 का मतलब है कि कर्व ×1.01 से नीचे शुरू होता है, और सबसे कम 1.98% ड्रॉ कभी इसे पार नहीं करते। और लगभग 11 में से एक राउंड ×10 या अधिक दिखाता है, जो काफी बार होता है कि इसे एक घंटे में कई बार देखा जा सकता है और एक उच्च लक्ष्य को पहुंचने योग्य महसूस कराता है। यह पहुंचने योग्य है — 101 में से एक राउंड ×100 को पार करता है — लेकिन तालिका बताती है कि कितनी बार, और "याद रखने के लिए काफी बार" वही नहीं है जो अक्सर होता है।
जिन राउंड पर आप शर्त नहीं लगा रहे हैं, वे इसी वितरण से खींचे जाते हैं, यही कारण है कि हाल के परिणामों की एक स्क्रीन अगले के बारे में कोई जानकारी नहीं देती। प्रत्येक राउंड एक ताजा nonce का ताजा HMAC है; इतिहास में ×500 अगले ×500 को ठीक उतना ही संभावित बनाता है जितना पहले था, 0.198%। यह gambler's fallacy इसके शुद्धतम रूप में है, क्योंकि यहां स्वतंत्रता एक सांख्यिकीय धारणा नहीं है बल्कि हैश की एक संपत्ति है।
बड़े गुणक का पीछा करने की कीमत
क्योंकि edge हर जगह समान है, लक्ष्य का चुनाव variance के बारे में एक चुनाव है, और variance की एक कीमत है जिसे बताना आसान है: आपको कितने राउंड का इंतजार करने की उम्मीद करनी चाहिए, और लंबे इंतजार की संभावना कितनी है। प्रति राउंड p जीतने की संभावना के साथ, N राउंड में कम से कम एक जीत की संभावना 1 − (1 − p)ᴺ है।
| लक्ष्य | राउंड | कम से कम एक जीत | कोई जीत नहीं |
|---|---|---|---|
| ×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)ᴺ. यह पैटर्न हर स्केल पर दोहराया जाता है: लक्ष्य के अपने राउंड की संख्या पर दांव लगाना (×100 पर 100 राउंड, ×1,000 पर 1,000) एक हिट का लगभग 63% मौका देता है, और उससे तीन गुना ज्यादा लगभग 95% देता है।
इस पर दांव लगाओ और अंकगणित ठंडी हो जाती है। ×100 पर सौ इकाई दांव लगाने में 100 इकाई का खर्च आता है और औसतन 99 वापस मिलते हैं — फिर से 1% — लेकिन औसत लगभग 100 वापस पाने का 63% मौका और कुछ भी न पाने का 37% मौका से बना है। जो खिलाड़ी उन सौ राउंड में एक बार हिट करता है वह बहुत आगे नहीं है; जो दो बार हिट करता है वह बहुत आगे है, और जो शून्य बार हिट करता है उसने पूरे सौ खो दिए हैं। लक्ष्य के बारे में कुछ भी 1% को नहीं बदलता जो आप प्रति इकाई देते हैं। इसके बारे में सब कुछ खिलाड़ियों के बीच परिणामों को कैसे वितरित किया जाता है यह बदलता है।
समान जाल का कम-लक्ष्य संस्करण मार्टिंगेल है: ×2 पर दांव लगाओ, हर हार के बाद दोगुना करो, और जीत के लिए एक इकाई एकत्र करो। ×2 पर जीतने की संभावना 49.50% है, लगातार दस की हारमणी 0.11% समय होती है, और ग्यारहवां दांव 1,024 इकाई है। मार्टिंगेल, कीमत वाला इसे रूलेट व्हील पर काम करता है; limbo के आंकड़े इससे एक दशमलव बिंदु के भीतर हैं। Risk of ruin किसी भी निश्चित-दांव योजना के लिए सामान्य सूत्र देता है कि यह 1% किनारे के खिलाफ कितने समय तक चलता है।
डेमो सेटलमेंट से एक व्यावहारिक विवरण: भुगतान stake × target को सेंट तक फर्श किया जाता है, इसलिए 0.37 का दांव ×1.23 पर 0.45 का भुगतान करता है, 0.4551 नहीं। दो-दशमलव लक्ष्य के साथ पूर्ण-इकाई दांव पर उत्पाद पहले से ही सटीक है और कुछ नहीं खोया जाता है; छोटे विषम दांव पर एक सेंट का अंश खो जाता है। वास्तविक-पैसे राउंड सिक्के की अपनी सटीकता में सेटल होते हैं।
एक राउंड को स्वयं जांचना
- खेलने से पहले, fairness panel सर्वर सीड का SHA-256 fingerprint दिखाता है। सीड को स्वयं प्रकट करने और fingerprint की पुष्टि करने के लिए बाद में अपनी सीड जोड़ी को rotate करें।
- सर्वर सीड को key के रूप में और "clientSeed-nonce-0" को message के रूप में लेकर HMAC-SHA256 की गणना करें; limbo राउंड cursor 0 का उपयोग करता है।
- Digest के पहले आठ bytes को hi ÷ 2³² + lo ÷ 2⁶⁴ के रूप में लें ताकि u मिले, फिर floor(0.99 ÷ (1 − u) × 100), 100–1,000,000 तक सीमित। यह outcome सौवें हिस्से में है, और यह राउंड से अंतिम अंक तक मेल खाना चाहिए।
Open-source verifier ये तीन कदम एक कमांड में करता है, `betkyo-verify limbo <serverSeed> <clientSeed> <nonce>`, और outcome को सौवें हिस्से में print करता है। यदि यह राउंड से मेल खाता है जिस पर आपको भुगतान किया गया था, तो संख्या तय थी इससे पहले कि आप अपना target type करें — जो एक commitment साबित करता है, और यह सब कुछ साबित करता है; एक hash commitment क्या साबित करता है उस लाइन को सावधानी से खींचता है।
सामान्य प्रश्न
Limbo में जीतने की बाधाएं क्या हैं?
इस engine पर, 99 को आपके target से विभाजित करें: ×2 पर 49.50%, ×10 पर 9.90%, ×100 पर 0.99% और ×10,000 cap पर 0.0099% (1 से 10,101 में)। यह सूत्र सटीक है क्योंकि खींची गई संख्या floor(99 ÷ (1 − u)) है और target सौवें हिस्से की पूरी संख्या है।
Limbo में house edge क्या है?
हर target पर 1.00%। जीत की संभावना 99 ÷ target है और payout target है, इसलिए हर दांव औसतन stake का 99.00% लौटाता है। कोई भी target multiplier दूसरे से बेहतर मान नहीं है; एक उच्च target केवल परिणामों को अधिक swing कराता है।
Limbo के लिए सबसे अच्छा target multiplier क्या है?
प्रत्याशा में कोई बेहतर target नहीं है — उनमें से सभी प्रति unit staked 1% की cost करते हैं। ×1.10 या ×1.50 जैसे कम targets अक्सर छोटी राशि देते हैं; उच्च targets दुर्लभ और बड़े होते हैं। मान के अनुसार नहीं, बल्कि यह चुनें कि आप कितना variance चाहते हैं, और याद रखें कि ×100 पर आपके पास 100 राउंड में कोई जीत न होने की 37% संभावना है।
Limbo 1.00 पर कितनी बार crash होता है?
राउंड का 1.98%, लगभग पचास में एक। यह सूत्र 0.99 ÷ (1 − u) से शुरू होता है, इसलिए draws के सबसे कम 1.98% ×1.01 से नीचे की संख्या उत्पन्न करते हैं, और कोई भी target इन राउंड पर जीत नहीं सकता है।
Limbo में ×2 एक 50/50 दांव है?
बिल्कुल नहीं: 49.50%। सटीक 50% बिंदु ×1.98 है, जो median outcome है। ×1.98 और ×2.00 के बीच आधा-बिंदु अंतर उस target पर house edge है।
क्या सूत्र में rounding खिलाड़ी के लिए कुछ खर्च करता है?
नहीं। floor(99 ÷ (1 − u)) में floor केवल दो decimals दिखाए जाने का फैसला करता है; क्योंकि targets पूरे hundredths हैं, floor(x) ≥ T बिल्कुल तब होता है जब x ≥ T, इसलिए जीत की संभावना किसी भी rounding loss के बिना 99 ÷ target है। Demo payout को cent तक floor किया जाता है, जो केवल छोटे odd stakes पर मायने रखता है।
स्रोत और संदर्भ
- Betkyo engine source: _shared/rng.ts में curve100() और u64() (outcome = floor(0.99 ÷ (1 − u) × 100) clamped to 100–1,000,000; पहले आठ digest bytes से u); _shared/demoLocal.ts में demoLimboBet() (cursor 0, win = outcome100 ≥ target100, payout floored to cents); limbo/limboGame.tsx में target range और 99 ÷ target win-chance display
- इस लेख के लिए सटीक गणना लिखी गई: win chance 99 ÷ T हर target के लिए, outcome distribution 0.99 ÷ x, per-round standard deviation और at-least-one-win probabilities; engine के HMAC stream के 400,000 rounds को curve100() के through replay करके cross-checked (×10: 9.86% simulated vs 9.90% exact; below ×1.01: 1.97% vs 1.98%)
- Betkyo provably-fair verifier (GitHub, MIT): limbo command serverSeed, clientSeed और nonce से outcome को reproduce करता है
इस लेख में गेम्स