方法论
本页记录本站把一个场景变成一个数字所用到的每一条公式、每一项假设和每一个模拟参数。 凡是闭式解算出的结果,都会标明是闭式解;凡是来自模拟的,都会连同误差范围一起给出。 本页没有任何一句话是在评价某个策略对你是否有利——这里只描述算术如何运转。
哪些是精确的,哪些是估计的
| 数字 | 计算方式 |
|---|---|
| 期望值、公平赔率、盈亏平衡胜率 | 闭式解。精确。 |
| 连败概率、最长连败分布 | 闭式解。精确。 |
| 平注的期末本金与破产概率 | 动态规划。赔率允许时精确。 |
| 一切路径相关的量 | 蒙特卡洛。估计值,附误差范围。 |
「路径相关」指其结果不仅取决于各种结局出现了多少次,还取决于它们出现的先后顺序—— 马丁格尔进程是最典型的例子,因为它下一注押多少取决于上一注发生了什么。 平注不是路径相关的,所以它可以直接求解而不必模拟。
期望值
设场景有若干结局 i,各自概率为 pᵢ,赔付倍数为 mᵢ(每单位注金,赢家得 +m,输家付 −1,和局为 0),则每单位注金的期望值为:
每单位注金 EV = Σ pᵢ · mᵢ
期望值为负说明场景平均而言偏向庄家;它对任何单独一轮不作断言。 对本站所有场景采用的「一胜、一全输、可选和局」结构,从同一组概率还能直接导出两个量。 公平赔率是使 EV 恰好为零的赔付倍数:
公平赔率 = p_loss / p_win
把同一关系反过来用,盈亏平衡胜率是使给定赔率 m 公平的胜率:
盈亏平衡胜率 = (1 − p_push) / (m + 1)
把实际胜率和这个数一比,就知道场景是有利、公平还是不利——只看赔率本身是看不出来的。
连败
连败按「有效轮」统计:和局被跳过,所以赢、和、赢算作两连胜,而不是被打断的三轮。设 q 为一个有效轮是输的概率(去掉和局后,胜负重新归一)。 那么接下来 k 个有效轮全输的概率是:
P(接下来 k 轮全输) = q^k
这和「在接下来 n 轮中的某处至少出现一次 k 连败」是两个不同的问题。后者由一个对当前尾部连败长度做前向递推的动态规划算出, 只要 n 大于 k,它就远大于 q^k—— 因为连败可以从很多个位置开始。混淆这两者是误读连败数字最常见的方式, 所以本站永远把它们分开报告,并标明各是哪个问题。
精确动态规划
平注——无论输赢每轮都押同样的注——是本金格点上的随机游走,吸收壁设在本金 不再够下注的位置。因为平注从不根据结果调整注额,它的结局分布可以直接求解而非抽样, 而且求解既精确又比模拟更快。
赔率化为最简分数 p/q 后,格点单位为 有效注额 / q, 其中有效注额是 max(底注, 桌面最低注)——考虑了桌面最低注之后 平注玩家实际下出的那一注,也是能让任意轮数后每个可能的本金值都恰好落在格点上的最小步长。 状态空间围绕游走的漂移带宽 ±7 个标准差;带外质量被舍弃,且控制在总量的十亿分之一 (1e-9)以内。最初试过 6 个标准差,被否决了:6σ 时舍弃的尾部本身就约为 1e-9, 和截断所要满足的容差同一量级,用 7σ 是为了在两者之间留出真实的余量。
动态规划是精确的,但并非无条件运行——遇到以下八种情形,它整体拒绝而不是近似作答。 这份清单是完备的,因为本页存在的意义就是让读者查明「精确」徽章为何出现或没有出现:
- 起始本金不恰好落在格点上——四舍五入到最近格点等于悄悄换了一个游戏来解,却把答案标成精确;
- 场景中存在不输光全部注金的「部分损失」结局(格点把下行步长写死为全输);
- 赔率无法表示为分母不超过 1,000 的分数——格点需要整数步长,只能塞进更细格点的赔率会让精确求解不再划算;
- 桌面最高注直接卡死了平注——第一注就已构成策略失败,而这不是此分布所建模的东西;
- 格点求解需要超过 5,000 万次状态×轮数运算——这正是「百家乐·庄」在 10,000 轮时显示误差范围而其他预设不显示的原因;
- 格点将超过 1,000,000 个状态。这是一条独立的内存上限, 不是上一条运算预算的重复:该规模下计算要分配的两个 Float64Array 约 16 MB, 而本金相对底注很大时,即使轮数不多,也可能轻松通过 5,000 万运算预算却单独超掉这条上限—— $1,000,000 本金、$1 底注、30 轮就是一例;
- 漂移相对本金过于极端,±7σ 带收缩到没有任何可玩状态,或干脆不包含起始状态—— 带宽以游走的预期去向为中心,单向拉力足够大时,范围内就没有东西可解了;或者
- ±7σ 带外被舍弃的质量超过了总量的十亿分之一。带宽的尾部论证假设步长分布足够接近正态, 7 个标准差已经够远——这对大致对称的赔率成立,对偏斜的赔率则不然: 小胜率配大赔率会把真实可测的质量放进带宽够不到的尾部。 这就是 35:1 赔率即使轮数不多也会被拒绝的原因:实测截断质量为 6.6e-8,远超上限。
以上每一条都是拒绝,不是近似——动态规划要么返回精确分布,要么什么都不返回; 每次拒绝都把问题移交给蒙特卡洛,由它带着可见的误差范围作答,而不是无声地近似。 这正是本站「精确」徽章值得信任的机制:它只出现在真正被精确求解的结果上, 从不出现在"接近精确"的结果上。
蒙特卡洛
一切路径相关的量——最主要是马丁格尔进程,以及任何被动态规划拒绝的平注配置—— 都改由模拟估计。每个模拟场次从带种子的伪随机数生成器(mulberry32)抽取结局, 选它是因为小、快,且在所有平台上逐位可复现。一次运行中的第 i 个场次以 种子 + i 为种子,所以任何单个场次的结果都不取决于它被分在哪个批次、 也不取决于它之前跑了多少个场次。
每次运行先跑 1,000 个场次的引导批,用它确定直方图的边界和柱宽,再让其余场次流式进入—— 这样图表不会随着场次增加而缩放或跳动。运行持续到 50,000 个场次完成, 或耗时达到 2 秒挂钟时间,以先到者为准。
每个报告的比例——破产概率、盈利概率等——都带有误差范围,并按其本来面目报告:1.96 · √(0.25 / n),即估计值在最坏情形(p = 0.5) 下的 95% 半宽,其中 n 为已完成的场次数。注意这是半宽,不是标准误—— 它已经是 95% 区间在估计值一侧的完整宽度,不应再乘一次 1.96。 显示精度永远不超过误差范围所支持的位数:任何比例都不会显示比其误差所能佐证的更多的小数位。
可复现性
默认种子为 1。场景的每个参数——包括种子——都携带在页面 URL 中, 因此同一个 URL 对每个打开它的人产生同样的模拟序列和同样的报告数字。 换种子会换掉具体模拟到的场次,但在本站的样本量下(1,000 场引导批、至多 50,000 场), 种子不会改变数字所支持的结论——只在既定误差范围内改变末位数字。
策略定义
马丁格尔:输后加倍,赢后回到底注,和局保持不变。策略本身从不悄悄缩小或封顶注额; 当加倍后的注额下不出去——超出剩余本金或桌面上限——按策略失败如实报告, 而不是悄悄调低到一个下得出去的数。
本金耗尽 vs 策略失败
这是两个不同的事件,本站分开报告。本金耗尽指本金已低于桌面允许的最小注—— 任何注都下不出了。策略失败指策略要求的下一注超出了剩余本金或桌面上限, 而手里其实还有钱——策略撞上了一堵换个更小的注本可以绕开的墙。
一个算例把区别说透:某场次以 $1,000 本金、$1 底注跑马丁格尔,连输九轮。 这九轮的注额是 $1、$2、$4、$8、$16、$32、$64、$128、$256——共输 $511, 剩 $489。马丁格尔要求的第十注是 $512,超出了手头的 $489。这是策略失败: 所需注额大于本金所能覆盖,尽管本金并未归零,换个更小的注仍然玩得下去。
和局处理
和局——最典型的是百家乐的「和」——不改变本金:注金原样退回,既没赢也没输。 它不推进也不重置下注进程,马丁格尔的注额穿过和局保持原样。它不打断连胜或连败, 赢、和、赢仍算连续两连胜。但和局毕竟下了注,其注金计入总下注额,尽管什么都没改变。
游戏假设
本站使用的百家乐数字——庄 0.458597、闲 0.446247、和 0.095156—— 是 8 副牌牌靴在标准补牌规则下的概率,由对牌靴的穷举组合计算得出而非模拟; 各类公开的百家乐赔率资料中出现的也是同一组数字。「和」对庄、闲两注均为退注。 庄注每单位赔付 0.95,反映庄家赢时惯例抽取的 5% 佣金。
轮盘的数字全部是算术而非引用的估计。欧式轮盘有 37 个等可能的格子(0 到 36): 押红覆盖 18 格、赔 1:1;一打覆盖 12 格、赔 2:1;单号覆盖 1 格、赔 35:1—— 三种方差天差地别的下注共享同一个 1/37 的庄家优势,这就是单零轮盘的算术。 美式轮盘多一个 00 格、共 38 格,押红变成 18/38,优势翻倍到 2/38。
花旗骰(Craps)过线注在两骰序列的 495 种等权归结中赢 244 种——经典的穷举结果—— 赔 1:1,优势 7/495(约 1.41%)。骰宝「小」覆盖三骰点数和 4 到 10: 216 种结果中有 107 种落在该区间,但区间内的两个豹子(2-2-2 与 3-3-3)按规则通杀, 剩 105 种赢、赔 1:1——优势 6/216(约 2.78%)。