抱歉,我刚刚开始这个项目,没有任何想法或代码,我问的更多是理论问题而不是编程问题。
似乎每个谷歌搜索都提供相同的响应,并且很难找到这个问题的答案:
有没有一种方法可以在不使用蒙特卡洛/穷举枚举方法的情况下计算德州扑克的获胜百分比(就像他们在黑暗或其他电视扑克赛事之后的扑克中所做的那样)。假设所有牌面朝上,并且我们知道牌组中的每张牌。
其他论坛上的每个回复似乎都是“使用 pokerstove”或类似的东西,我正在寻找编写代码的理论。
谢谢。
最佳答案
Is there a way to calculate win percentages for texas holdem poker (the same way they do on poker after dark or other televised poker events) without using the monte carlo/exhaustive enumeration methods.
在特定情况下,可能...
您可以在翻牌前对两名玩家进行单挑对决时使用完美的翻牌前查找表:请注意,“典型的”169 vs 169 近似值不够好(比如 Jh Th vs 9h 8h 并不是真正的“JTs vs 98s”:我意思是,这将是一个相当粗略的近似)。
除此之外,如果您有大量内存并且可以忍受巨大的缓存未命中,那么从技术上讲,您可以预先计算巨大的查找表(例如在服务器端)并为其他情况进行查找(例如,对于每三个可能的玩家全押比赛) preflop),但你真的需要很多内存:)
请注意,翻牌和转牌的“完整枚举”不是问题:翻牌时只有 2 张牌要来,所以通常只有 C(45,2) [两名玩家在翻牌全押,我们知道 2* 2 张底牌 + 3 张公共(public)牌——因此留下 990 种可能性] 或 C(43,2) [三名玩家在翻牌时全压,我们知道 3*2 底牌 + 3 张公共(public)牌]。
因此,实际的评估者不会使用一种方法,而是使用几种方法。例如:
有趣的是,在最典型的情况下,你会非常非常快地得到结果:大多数实际的全押涉及两名玩家,而不是三名或更多。
所以你要么在“1 vs 1 preflop”查找表中查找或 做完整的 C(45,2) 或 C(46,1) 完整的枚举(在这两种情况下,速度都非常快)。
实际上只有“三名玩家或更多玩家翻牌前全压”的情况才需要时间。
关于theory - 在没有蒙特卡洛/详尽枚举的情况下获得德州扑克的获胜百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821776/