在扑克中提供手牌强度的算法

时间:2017-04-18 21:50:13

标签: java algorithm poker

我正试图找到一种方法来计算一手牌的力量,特别是有多少独特的牌(169手牌)在摊牌时获得完全或不完整(holdem)时获胜的机率更高。

我尝试过这种方式并且已经取得了一些成功但是我的程序运行花费了大量的时间,因为我基本上已经为每个可能的手动组合分支,并且比较了聚合结果每个场景都能找到多少手比英雄更好。 TLDR非常低效,运行时间不切实际。

然而,像http://www.cardplayer.com/poker-tools/odds-calculator/texas-holdem这样的工具似乎可以更快地进行计算。上述程序似乎对所有可能的未来电路板组合进行了计算,因此它可以为您提供更好的不完整电路板。虽然,对于我的特定节目,我想在任何给定点找到英雄的手数,这将要求我为每个52 * 51非独特的起手操作上面的程序,并找到我的手放在其他人之间,一旦获得了更好的牌数,我将不得不减少那些不合格的起手牌(即8c7h和8h7c将减少到87o)

所以我的问题是,是否有任何工具/框架/参考(最好是用Java)来计算英雄手的强度与匿名手的给定,因为任何完整或不完整的棋盘也不需要一天的时间来运行?

2 个答案:

答案 0 :(得分:1)

我不是一个扑克类型的人,但你可能会发现ThePokerBank网站很有趣,麻省理工学院的poker theory专用课程怎么样,奖励infographic来帮助你也出去了。

你可以采取不同的策略来解决这个问题,所有这些都涉及到一些关于Statiscal分析的知识,我想说其他扑克算法工作得更好的原因之一就是他们使用的是矢量化数学的形式而不是一系列for循环。我知道像octave / MatLab / R这样的语言采取这种策略来进行批量操作。

祝你好运,玩得开心!!

答案 1 :(得分:0)

这个帖子有很多信息Stack Overflow Evaluation Algorithms

同样位于Code Projecta tutorial on an algorithm以及Java来源:at Github以及不同语言at rosettacode