Bethropic

骰子赔率:每次小于和大于目标背后的真实胜率、支付为何向下取整,以及哪些目标返回完整的99%

spindle6818 次浏览
🌐 Originally written in English· AI translationView original

一次掷骰,9,999种结果

骰子是网站上最简单的游戏:选择目标,选择小于或大于,掷骰要么落在你选择的一侧,要么不落。屏幕显示每个目标的胜率和倍数,两者看起来相乘正好等于99%——本金返还减去1%的庄家优势。引擎比屏幕显示的更精确,有两种方式都对玩家不利,本文精确计算了它们。

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.

庄家服务携带自己的算术测试DiceHouseEdgeTest,检查没有目标返回超过99%,且向下取整永不超过一个舍入步骤。两者都成立。该测试未打印的是每个目标实际返回多少,这就是玩家需要的表。

显示的胜率和真实的胜率

屏幕上显示的胜率是计算为掷骰是0到100之间的连续数字。事实并非如此:它是9,999步中的一个。小于目标T的掷骰在结果0.01到T − 0.01之间赢,即100 × T − 1个,所以真实胜率是(100T − 1) ÷ 9,999。在大多数目标处差异不可见;在最小的目标处则不然。

小于目标的掷骰:获胜结果、显示胜率和真实胜率

目标(小于)9,999中的获胜结果显示胜率真实胜率
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%

True chance = (100 × target − 1) ÷ 9,999。在目标T上方滚动在9,999 − 100T个结果上获胜,所以Over T的定价完全相同于Under (100 − T):Over 50也在4,999个结果上获胜。

差距始终是一个结果。在50%的目标下,成本为0.005个百分点的概率,百分比回报的百分之一;在2%的目标下,滑块允许的最紧,200个中的一个结果约占赢的概率的百分之0.5,回报从99.00%下降到98.51%,原因仅在于此。相同的事实解释了一个小奇异性:恰好50.00的滚动同时输给Under 50和Over 50,因为两种比较都不包括目标。它每9,999次滚动发生一次。

两位小数下限

第二个成本是乘数。引擎将0.99除以赢的概率并保留两位小数,始终向下舍入。当除法结果精确时——0.99 ÷ 0.50 = 1.98,0.99 ÷ 0.25 = 3.96——没有损失。当它不是时,玩家得到截断的数字:0.99 ÷ 0.80 = 1.2375,支付为×1.23。在高赢的概率下,乘数接近1,被丢弃的百分位数是利润的很大一部分,回报下降幅度远大于低端。

什么是低于目标的滚动支付和回报,1%的庄家优势

目标(低于)支付显示的概率×支付真实回报
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%

真实回报 = 倍数 × (100 × 目标 − 1) ÷ 9,999。在 90.00 时为 98.999%,滑块上最高的;在 97.06 时为 98.030%,最低的。Over 目标镜像这些行:Over T 返回 Under (100 − T) 返回的内容。

一起读右边的两列,两个成本分别清楚地分离。在低目标处,倍数通常能整除,整个不足是缺失的结果;在高目标处,缺失的结果可忽略不计,不足几乎全是底数。目标 80 是最清楚的情况:0.99 ÷ 0.8 需要 ×1.2375,表格支付 ×1.23,回报是 98.40% — 庄家优势是 1.6%,不是 1%。97.06 到 98.00 之间的每个目标都支付相同的 ×1.01,所以你转向 97.06 放弃的机会没有买到任何东西。

在整个滑块上 — 从 2.00 到 98.00 的每个目标,步长为 0.01,共 9,601 个设置 — 真实回报平均为 98.72%。其中只有 585 个设置,6.1%,回报为 98.95% 或更多;1,453 个,15.1%,回报少于 98.50%。

输入倍数,而不是百分比

游戏有第二种设置投注的方式:输入你想要的倍数,它会计算出目标。它选择底数支付至少是你输入的倍数的目标,所以输入的倍数总是落在 0.99 ÷ 概率能整除的设置上。这完全消除了底数成本;只有单一结果差距保留。

输入的倍数及其解析的目标

已输入目标 (UNDER)真实概率真实回报
×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%

dice/diceApi.ts中的targetForMultiplier()函数会对Under目标值向下取整(或对Over目标值向上取整),这样赔率永远不会超过输入的倍数所暗示的赔率。返回值四舍五入到小数点后两位;×1.10是98.999%,×1.20是98.998%。

实用规则很简单。如果你关心最后的半个百分点,与其设置百分比不如设置倍数,而且最好在低赔率范围内选择整数倍数。一个因为看起来是整数百分比而选择的目标值——80、70、40——的赔率往往不如相邻的目标值好。这都不改变长期趋势:每个设置都会返回少于本金的结果,马丁格尔、定价和破产风险说明了为什么没有任何投注序列能改变这一点。

Limbo从构造上就避免了向下取整:玩家直接设置赔率,抽取的数字会与同一个数字比较,所以没有需要付出代价的第二次舍入。Dice报价一个赔率概率,然后从中推导赔率,正是这个推导过程中出现了向下取整。

自己验证一轮游戏

  1. 在你开始游戏前,公平性面板会显示服务器种子的SHA-256指纹。之后轮换你的种子对以揭示种子并确认指纹。
  2. 用服务器种子作为密钥,用"clientSeed-nonce-0"作为消息计算HMAC-SHA256;一轮游戏只使用游标0。
  3. 读取摘要的前13个十六进制数字作为整数,除以2⁵²得到u。结果为(floor(u × 9,999) + 1) ÷ 100。将其与您的目标严格比较,并将您的彩票上的倍数与0.99 ÷ chance四舍五入到小数点后两位进行比较。

如果结果匹配,这在您选择目标之前就已确定——正如哈希承诺证明的内容所解释的,这正是承诺保证且仅保证的内容。目标的价格不在哈希中。它在上面的两行算术中,这就是本文存在的原因。

常见问题

掷骰子游戏的真实赔率是多少,掷骰子范围是0到100?

这里的掷骰子是9,999个结果中的一个,从0.01到99.99。掷骰子低于T时在其中100 × T − 1个结果上获胜,所以掷骰子低于50的概率是49.995%,掷骰子低于10的概率是9.991%,掷骰子低于2的概率是1.990%。

掷骰子游戏的庄家优势是多少?

公布的优势是1%,但真实返还取决于目标:目标为90时为99.00%,目标为97.06时为98.03%。在从2.00到98.00的每个滑块设置上平均而言为98.72%,有效优势为1.28%。

为什么我的掷骰子倍数看起来向下四舍五入了?

游戏引擎支付0.99 ÷赔率概率,四舍五入到小数点后两位。在80%的目标下,这是1.2375,支付为×1.23,返还98.40%而不是99%。

在掷骰子游戏中选择什么目标最好?

任何0.99 ÷概率能完全整除的目标,如50(×1.98)、25(×3.96)、90(×1.10)或66(×1.50)。输入倍数而不是百分比可以自动找到一个。没有目标返还超过99%。

如果掷骰子的结果正好落在我的目标上会怎样?

它会输。Under仅在目标下方获胜,Over仅在目标上方获胜,所以掷骰子结果正好是50.00时,Under 50和Over 50都会输。这在9,999次掷骰子中发生一次。

我可以验证掷骰子的结果吗?

可以。HMAC-SHA256 "clientSeed-nonce-0"由公开的服务器种子作为密钥;前13个十六进制数字除以2⁵²得到u,(floor(u × 9,999) + 1) ÷ 100就是结果。

资料来源和参考

  • Betkyo引擎源代码,服务提供商:OriginalBaseDiceService.kt — getResult()(nextIntBelow(9999) + 1,除以100)、getWinChance()(4位小数向下取整)、checkAndGetMultiplier()((1 − 庄家优势) ÷赔率概率,2位小数向下取整)、getEarned()(严格比较);SeedPairRandom和PfHashUtils.normalize()(前13个十六进制数字÷ 2⁵²);DiceHouseEdgeTest.kt
  • Betkyo引擎源代码,客户端镜像:dice/diceApi.ts中的payoutMultiplier()和targetForMultiplier();diceGame.tsx中的2.00–98.00滑块范围
  • 为本文编写的精确计算:(100T − 1) ÷ 9,999赔率概率和所有9,601个滑块目标的向下取整倍数、它们的真实返还和分布;通过将400,000次HMAC流的掷骰子重播进行结果推导交叉检查(掷骰子低于50:模拟值49.88%对比精确值49.995%;结果范围从0.01到99.99)

本文中的游戏

骰子 — 规则与免费游戏 →

骰子赔率:每次小于和大于目标背后的真实胜率、支付为何向下取整,以及哪些目标返回完整的99%

评论 (0)

还没有评论。