한 줄의 산술
Limbo는 보드도 없고 카드도 없고 휠도 없습니다. 목표 배수를 입력하면 엔진이 숫자를 뽑고, 그 숫자가 목표 이상이면 승리합니다. 이 경우 베팅금의 목표 배수만큼 지급됩니다. 이것이 전부이며, Limbo가 가장 계산하기 쉬운 카지노 게임인 이유는 하나의 난수 입력이 있는 하나의 공식에서 나오기 때문입니다.
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.
공식을 안쪽에서 바깥쪽으로 읽으세요. 난수 u는 0과 1 사이에 균등하게 분포합니다. 0.99를 1 − u로 나누면 그 균등한 분포를 곡선으로 변환합니다: u가 0에 가까우면 ×0.99 근처의 숫자, u가 1에 가까우면 무한대로 향하는 숫자가 됩니다. ×100과 버림은 소수점 두 자리 숫자로 변환하고, 고정은 ×1.00과 ×10,000.00 사이로 조정합니다. 0.99는 하우스 엣지이며, 엣지가 존재하는 유일한 장소입니다.
모든 목표에서의 승률
목표 T에서 승리하는 것은 floor(99 ÷ (1 − u))이 T 이상일 때이며, 백분의 자리로 표기합니다. T는 백분의 자리의 정수이므로, 버림은 그 비교에 차이가 없습니다: 199.7의 값은 199로 버림되어 200의 목표를 놓치며, 199.7 자체도 정확히 같게 놓칩니다. 따라서 조건은 단순히 99 ÷ (1 − u) ≥ T이고, 이것을 정렬하면 u ≥ 1 − 99 ÷ T가 됩니다. 균등 숫자가 그 지점에 나타날 확률은 99 ÷ T이며, 이것이 완전한 답입니다.
| 목표 | 승률 | 한 번의 승리당 | 반환 | 하우스 엣지 | 베팅 단위당 변동성 |
|---|---|---|---|---|---|
| ×1.01 | 98.02% | 1.02 라운드 | 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 베팅 단위만큼 변동하고, ×1,000에서는 31 베팅 단위만큼, 상한선에서는 100 베팃 단위만큼 변동함.
한 행은 다시 한 번 주목할 가치가 있음. ×1.98에서 승리 확률은 정확히 50%이며, 이는 ×1.98을 중앙값 결과로 만듦: 모든 라운드의 절반은 이 값 위에서 끝나고 절반은 아래에서 끝남. 정수 배수 ×2.00은 0.5포인트 핸디캡이 있는 동전 던지기로 49.50%이며, 그 0.5포인트가 그 목표값에서 1% 우위가 앉아 있는 곳임. 다른 모든 목표값은 같은 방식으로 같은 우위를 숨김 — 공정한 게임은 49.5% 확률에 대해 ×2.0202를 지급하고, 엔진은 ×2를 지급함.
이것은 소수점 이하 두 자리 승수를 가진 주사위 게임과 다른 림보의 부분입니다. 그곳에서는 선택한 확률에서 지급금이 파생되고 반올림되며, 반올림은 일부 설정에서 플레이어에게 소수점 이하 몇 백분의 손실을 줄 수 있습니다. 림보에서 플레이어는 소수점 이하 백분의 단위로 지급금을 직접 명명하고, 공식은 그려진 숫자를 그 동일한 수치와 비교합니다. 두 번째 반올림 비용을 낼 필요가 없습니다. 공식의 floor는 화면에 나타나는 두 소수점만 결정합니다. verifier 문서는 라운드를 확인할 때 이 단 하나의 floor를 정확히 재현해야 하는 이유를 설명합니다.
아무도 목표로 하지 않을 때 숫자가 착지하는 곳
동일한 공식은 모든 목표와 관계없이 그려진 숫자 자체를 설명합니다. 최소 ×x에 도달할 확률은 0.99 ÷ x이고, ×1.01 이상의 모든 x에 대해, 이는 화면에 표시되는 것의 전체 분포를 제공합니다.
| 범위 | 라운드 비율 | 정보 |
|---|---|---|
| ×1.00 (모든 목표 이하) | 1.98% | 50.5중 1 |
| ×1.01부터 ×1.49까지 | 32.02% | 3.1중 1 |
| ×1.50부터 ×1.99까지 | 16.50% | 6.1중 1 |
| ×2.00부터 ×2.99까지 | 16.50% | 6.1중 1 |
| ×3.00부터 ×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)가 100분의 101 이하로 떨어질 확률이고, u < 2 ÷ 101입니다. 마지막 행은 클램프가 100만 백분의 자리에 고정되는 모든 드로우입니다. 행들의 합은 100%입니다.
이 행들 중 두 행은 림보 세션의 느낌을 대부분 설명합니다. 약 50번 중 1회는 ×1.00을 보여주는데, 이는 어떤 타겟도 이길 수 없는 숫자입니다. 공식의 0.99는 곡선이 ×1.01 아래에서 시작한다는 뜻이고, 가장 낮은 1.98%의 드로우는 이를 절대 넘지 못합니다. 그리고 약 11번 중 1회는 ×10 이상을 보여주는데, 이는 시간당 여러 번 볼 수 있을 정도로 충분히 자주 발생하고 높은 타겟을 달성 가능해 보이게 합니다. 달성할 수는 있습니다 — 101번 중 1회는 ×100을 넘지만 — 이 표가 얼마나 자주인지 보여주고, "자주 기억에 남을 정도"는 "자주"와 같지 않습니다.
당신이 베팅하지 않는 라운드들은 이 같은 분포에서 나오는데, 이것이 최근 결과로 가득한 화면이 다음 라운드에 대한 정보를 전혀 담지 않는 이유입니다. 모든 라운드는 신선한 논스의 신선한 HMAC입니다. 히스토리에 ×500이 있다는 것이 다음 ×500을 이전과 정확히 같은 확률인 0.198%로 만듭니다. 이것이 가장 순수한 형태의 도박꾼의 오류입니다. 왜냐하면 여기서 독립성은 통계적 가정이 아니라 해시의 속성이기 때문입니다.
큰 배수를 노리는 데 드는 비용
에지는 어디나 같으므로 타겟을 선택하는 것은 분산을 선택하는 것이고, 분산에는 명확하게 설명할 수 있는 대가가 있습니다: 당신이 기다려야 할 것으로 예상되는 라운드 수와 긴 대기가 얼마나 가능성이 있는지입니다. 라운드당 승리 확률 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% 확률로 한 번 맞히고, 그 3배만큼 베팅하면 약 95% 확률입니다.
베팅을 걸고 산술은 냉정해집니다. ×100에서 100개의 1단위 베팅은 100단위의 비용이 들고 평균적으로 99를 반환합니다 — 다시 1% — 하지만 평균은 약 100을 돌려받을 63% 확률과 아무것도 돌려받지 못할 37% 확률로 이루어져 있습니다. 100라운드 중에 한 번 맞힌 플레이어는 많이 앞서지 못했고, 두 번 맞힌 플레이어는 많이 벌었으며, 0번 맞힌 플레이어는 100 전부를 잃었습니다. 대상이 변해도 단위당 지불하는 1%는 바뀌지 않습니다. 대상이 바꾸는 모든 것은 결과가 플레이어들 사이에 어떻게 분배되는지입니다.
같은 함정의 저배팅 버전은 마틴게일입니다: ×2에 베팅하고 각 손실 후에 2배로 올리며 승리당 1단위를 모으세요. ×2에서의 승리 확률은 49.50%이고, 10연속 손실이 발생할 확률은 0.11%이며, 11번째 베팅은 1,024단위입니다. 마틴게일, 가격 책정됨은 룰렛 휠에서 이를 처리합니다; 림보 수치는 소수점 이하 한 자리 범위 내입니다. 파산 위험은 1% 하우스 에지에 대해 고정 배팅 계획이 얼마나 오래 지속되는지에 대한 일반 공식을 제공합니다.
데모 정산의 실제 세부 사항: 지급액은 스테이크 × 대상을 센트로 내림한 것이므로, 0.37의 스테이크를 ×1.23에 베팅하면 0.4551이 아닌 0.45를 지급합니다. 소수점 이하 두 자리 대상의 전체 단위 스테이크에서는 곱이 이미 정확하고 손실이 없습니다; 소수점 이하가 있는 작은 홀수 스테이크에서는 손실이 발생합니다. 실제 자금 라운드는 코인의 자체 정밀도로 정산됩니다.
遊모든 라운드가 검증 가능한 림보
×1.01에서 ×10,000까지의 대상을 입력하세요 — 승리 확률은 99 ÷ 대상이며 베팅하기 전에 표시됩니다림보 →
라운드 직접 확인하기
- 플레이하기 전에 공정성 패널에 서버 시드의 SHA-256 지문이 표시됩니다. 이후 시드 쌍을 회전하여 시드 자체를 공개하고 지문을 확인합니다.
- 서버 시드를 키로 하고 "clientSeed-nonce-0"을 메시지로 하여 HMAC-SHA256을 계산합니다. limbo 라운드는 커서 0을 사용합니다.
- 다이제스트의 처음 8바이트를 hi ÷ 2³² + lo ÷ 2⁶⁴로 하여 u를 구합니다. 그 다음 floor(0.99 ÷ (1 − u) × 100)을 계산하고 100–1,000,000으로 제한합니다. 이것이 백분의 일 단위의 결과이며, 라운드의 마지막 자릿수까지 일치해야 합니다.
오픈소스 검증기는 세 단계를 한 명령어로 실행합니다: `betkyo-verify limbo <serverSeed> <clientSeed> <nonce>`이며, 백분의 일 단위의 결과를 출력합니다. 이것이 당신이 배팅한 라운드와 일치하면, 그 숫자는 당신이 목표를 입력하기 전에 이미 정해진 것입니다. 이것이 커밋먼트가 증명하는 것이며, 증명할 수 있는 전부입니다. 해시 커밋먼트가 증명하는 것이 그 선을 명확히 그어봅니다.
FAQ
limbo에서 승리할 확률은 얼마나 되나요?
이 엔진에서는 99를 당신의 목표로 나눕니다: ×2에서 49.50%, ×10에서 9.90%, ×100에서 0.99%, ×10,000 상한에서 0.0099% (1/10,101). 공식은 정확합니다. 왜냐하면 뽑힌 숫자는 floor(99 ÷ (1 − u))이고 목표는 백분의 일 단위의 정수이기 때문입니다.
limbo의 하우스 엣지는 얼마나 되나요?
모든 목표에서 1.00%입니다. 승리 확률은 99 ÷ 목표이고 배당은 목표이므로, 모든 배팅은 평균적으로 스테이크의 99.00%를 반환합니다. 어떤 목표 배수도 다른 것보다 나은 가치를 제공하지 않습니다. 더 높은 목표는 결과의 변동성을 증가시킬 뿐입니다.
limbo에서 최고의 목표 배수는 무엇인가요?
기댓값상 더 나은 목표는 없습니다. 모두 스테이크 단위당 1%의 비용이 듭니다. ×1.10 또는 ×1.50 같은 낮은 목표는 자주 작은 금액을 지급하고, 높은 목표는 드물게 큰 금액을 지급합니다. 가치로 선택하지 말고 원하는 변동성으로 선택하세요. ×100에서는 100라운드 중 37%에서 전혀 승리하지 못할 확률이 있다는 것을 기억하세요.
limbo에서 1.00에서 얼마나 자주 크래시하나요?
라운드의 1.98%, 약 1/50입니다. 공식은 0.99 ÷ (1 − u)에서 시작하므로, 가장 낮은 1.98%의 뽑기는 ×1.01 미만의 숫자를 생성하며, 어떤 목표도 이 라운드에서 승리할 수 없습니다.
limbo에서 ×2는 50/50 베팅인가요?
거의 그렇지만: 49.50%입니다. 정확한 50% 지점은 ×1.98이며, 이것이 중앙값 결과입니다. ×1.98과 ×2.00 사이의 0.5포인트 격차가 그 목표에서의 하우스 엣지입니다.
공식의 반올림이 플레이어에게 손실을 주나요?
아닙니다. floor(99 ÷ (1 − u))의 floor는 표시되는 두 소수 자리만 결정합니다. 목표가 백분의 일 단위의 정수이기 때문에 floor(x) ≥ T는 정확히 x ≥ T일 때 성립하므로, 승리 확률은 어떤 반올림 손실 없이 99 ÷ 목표입니다. 데모 배당은 센트 단위로 버림 처리되는데, 이는 작은 홀수 스테이크에만 영향을 줍니다.
출처 및 참고자료
- Betkyo 엔진 소스: _shared/rng.ts의 curve100() 및 u64() (결과 = floor(0.99 ÷ (1 − u) × 100) 100–1,000,000으로 제한; 첫 8개 다이제스트 바이트로부터 u); _shared/demoLocal.ts의 demoLimboBet() (커서 0, 승리 = outcome100 ≥ target100, 배당 센트 단위로 버림 처리); limbo/limboGame.tsx의 목표 범위 및 99 ÷ 목표 승리 확률 표시
- 이 기사를 위해 작성된 정확한 계산: 모든 타겟에 대해 승리 확률 99 ÷ T, 결과 분포 0.99 ÷ x, 라운드별 표준편차 및 최소 한 번 승리 확률; 400,000 라운드의 엔진 HMAC 스트림을 curve100()을 통해 재생하여 교차 검증 (×10: 시뮬레이션된 9.86% vs 정확한 9.90%; ×1.01 이하: 1.97% vs 1.98%)
- Betkyo provably-fair verifier (GitHub, MIT): limbo 명령어가 serverSeed, clientSeed, nonce에서 결과를 재현합니다
이 기사의 게임