ALGORITHM

同一手牌算两次,胜率差 3 个点,是工具坏了吗

不是。蒙特卡洛是抽样,抽样就有波动。这篇讲清楚波动有多大、什么时候该信、什么时候该怀疑。

两种算法:枚举和抽样

枚举法:把所有可能的发牌组合都算一遍,得到精确值。翻牌圈还剩 45 张未知牌,转牌河牌两张的组合数是 C(45,2) = 990 种,算得完。所以翻牌圈的胜率可以做到精确。

抽样法:随机发牌几十万次,统计赢的比例。转牌圈未知牌 44 张,河牌一张,组合数不多;但如果要考虑对手范围(几十上百种手牌),组合数就爆炸了,只能抽样。

成熟的实现会混合用:能枚举的地方枚举,涉及范围的地方抽样。

误差有多大:跟抽样次数的关系

统计上,误差与抽样次数的平方根成反比。粗略的换算:

抽样次数典型误差感受
5,000±1.4 个点边缘牌会看到明显跳动
20,000±0.7 个点基本够用
100,000±0.3 个点肉眼看不出来
1,000,000±0.1 个点实战完全没必要

所以「同一手牌两次算出 62% 和 63%」是正常的。但如果两次差 5 个点以上,那就不是抽样误差,是代码有 bug 或者范围设错了。

比抽样误差更大的问题:范围建模

抽样只影响小数点后一位,范围建模能影响 10 个百分点。

举例:你手里 AKo,翻牌 K-7-2。对手在枪口位加注后跟了你的 3-bet。

  • 按随机牌算:你的胜率约 85%
  • 按范围算(QQ+、AK、少量 AQs):你的胜率约 62%

差 23 个点。这不是算法精度问题,是「对手不可能拿 72o 跟你 3-bet」这个基本事实没被考虑进去。

所以判断一个工具好不好,别问它抽样多少次,问它「对手 UTG 开池的范围是什么」——答得出来才有模型。

还有三个隐蔽的偏差来源

一、死牌没扣

弃牌的人手里有牌,那些牌不在牌堆里了。严格算要把已弃的牌也排除,但工具通常不知道别人弃了什么,只能忽略。这会让胜率略微偏高(对你和对手都偏高)。

二、平局处理

平局算赢还是算一半?算一半才对(分池)。有些实现把平局直接算赢,长期看会高估胜率。

三、后门听牌

简单实现只看「现在这条街的直接补牌」,不算后门同花/后门顺。这会在翻牌圈低估边缘牌的胜率,差 2~4 个点。

你自己怎么验一个工具的胜率准不准

三步,十分钟能做完:

  1. 拿已知答案的局面测:AA 对 KK 全下,标准答案是 81.9% 左右。工具给 82% 就算准。
  2. 拿听牌测:翻牌同花听牌(9 outs)到河牌命中率 35%。工具应该给「你赢的概率」而不是「你成牌的概率」,注意区分。
  3. 连算五次同一局面:看波动。差 1 个点以内正常,差 3 个点以上说明抽样太少。

三步都过,这个工具的数学部分就可以信了。剩下的问题在识别层和决策层。

常见问题

问得最多的几个,直接给答案。

为什么工具每次算的胜率略有不同?
用抽样法的实现会有随机波动,5 万次以上抽样时误差在 ±0.5 个点内,实战无影响。
翻牌圈的胜率能算精确吗?
如果只算具体手牌对具体手牌,能枚举出精确值。涉及对手范围时通常还是抽样。
胜率准就等于工具好吗?
不等于。识别的准确度、对手建模的精度、决策层的逻辑,任何一环错了,胜率再准也没用。
为什么要扣死牌?
别人弃掉的牌不在牌堆里,严格计算要排除。工具不知道弃了什么,只能忽略,这会带来轻微偏差。

相关功能页

同一个工具的不同角度,点进去看细节。

先拿免费试用,打一晚上再说

试用卡一机一次,装上就能看实时胜率、范围与建议。好用再谈价格。装之前可以先翻官方手册与更新日志、到下载页核对版本号与校验值。

领取试用 / 查看价格 →