计算德州扑克或奥马哈手牌对 8 个随机对手手牌的获胜概率的软件如何工作?



所以有一些德州扑克电脑游戏,你最多可以玩8个对手,据说其中一些电脑游戏会告诉你,假设对手的手牌都是随机的,你获胜的概率。如果有人不知道,在Hold‘em,每个玩家都会得到2张私人卡,然后最终在中间分发5张社区卡(先是3张,然后是1张,然后再分发1张),获胜者是可以使用2张私人牌和5张社区牌的任何组合做出最好的5张牌手牌的玩家。在奥马哈,每个玩家都会得到4张私人卡,还有5张社区卡,获胜者是能够使用2张私人卡和3张社区卡打出最好的5张牌的玩家。

因此,在Hold‘em中,对于任何给定玩家的私人牌,有超过10^24种方式可以处理8个对手的私人牌和5张社区卡。那么,假设你的8个对手的手牌是随机的,他们如何计算/估计你一开始获胜的概率呢?在奥马哈,情况甚至更糟,尽管我从未见过一款奥马哈电脑游戏能让你在8个随机对手的手牌中获胜。但无论如何,有没有什么编程技巧可以比暴力更快地完成这些获胜概率计算(或者说,在小数点后3或4位内更正)?我希望有人能在这里回答,谁之前写过这样一个程序,运行速度足够快,所以我在这里问。我希望答案不涉及随机抽样估计,因为总有很小的可能性。

正如您所确定的,预期胜率是一个难以控制的大总和,必须进行近似。标准方法是使用蒙特卡罗方法,该方法包括反复模拟各种手牌,并取经验平均值:#胜/#局。

有趣的是,这种近似方法的(MSE)误差与维度(组合的数量)无关,特别是,如果你赢了,设X=1,如果你输了,设0,MSE=var(X)/N=p*(1-p)/N,其中p=Probe(X=1)(未知),N是样本数。

有很多不同的蒙特卡罗技术可以改善普通抽样方法的方差,例如重要性抽样、常见随机数、Rao-Blackwell化、控制变量和分层抽样等等。

编辑:刚刚看到你在寻找一种非随机近似方法,我怀疑你在确定性近似方法方面会有多大运气,我知道目前计算扑克研究的最新技术使用蒙特卡罗方法来计算这些概率,尽管有一些方差减少技巧。

关于"因为总有一个很小的机会",你总是可以用霍夫丁不等式得到错误率的高概率界。

我会使用预先计算的赔率表,而不是动态计算。列出这些的表非常容易找到,并且已经存在了很长一段时间,因此它们是经过验证的工具。将你的洞卡+社区卡与预先计算的表中列出的百分比进行匹配,并立即将值返回给你,跳过即时计算时间,这将是非常简单的。

一副牌中只有52张牌(传统意义上),因此,如果你只是提前找到所有可能的解决方案,那么从中阅读会快得多,而不是重新计算每只手牌的赔率。

以下是一个不完整赔率表的链接:http://www.learn-texas-holdem.com/texas-holdem-odds-probabilities.htm

我认为这就像破解密码一样。使用一个通用密码列表来减少计算时间,而不是单独强制每个字符。这种情况的不同之处在于,你提前知道了每一种可能的组合。

最新更新