计算德州扑克中的 5 张牌抽牌

Calculating 5 card draw outs in Texas Hold'em Poker

我目前正在 python 中进行扑克模拟,我一直在计算 post-翻牌、转牌

的补牌

我想学习如何计算翻牌时的补牌。 换句话说,我想学习如何让我的模拟识别出我需要一张牌才能顺子。如果丢失的牌在中间,我的补牌是 4。如果它在顺子的开头或结尾,我的补牌是 8。

例如:

我口袋里有(手)5-黑桃和 6-方块

翻牌是:9-Clubs,8-Hearts,K-Hearts

所以我的 5 张牌是:5s - 6d - 8h - 9c - Kh

在扑克中,这种开牌是内顺顺子开牌。如果我轮流抽到任何类型的 7 或河牌,我就会有顺子听牌。由于一副牌中有 4 个 7,我的出牌是 4 个顺子。

这只是关于补牌的一个基本示例。

如果有人能指导我,我会很高兴。

亲切的问候

在没有其他知识的情况下,您可以使用

计算出概率
 number of ways a success can occur
 -----------------------------------
 total number of outcomes

所以有 5 张你知道的牌和 52-5 = 47 张你不知道的牌,给出 47 种可能的结果。抽出 4 个七人组中的一个的概率为

   4
  --
  47 

如果抽到两张牌,则需要probability tree diagrams

前两张牌是 7 的概率是

   4 / 47 * 3 / 46

第一个是 7 而第二个不是 7

   4 / 47  * 43 / 46

第一个不是七,第二个是七

   43 / 47 * 4 / 46

两者都不是七人组

   43 / 47 * 42 / 46

首先,您需要一些可以识别各种手牌(同种四、同花顺等)的代码。然后,您的算法应该一次从玩家手中拿走四张牌,并循环遍历牌组中所有剩余的牌,一次一张,将它们添加到玩家手上并测试它们以查看哪些手牌可能与一张画.

也就是说,给定手牌 A B C D E,因此牌 X1, X2, ..., X47 构成可能的抽牌,您的算法将测试:

A B C D + (X1 ... X47) --> evaluate_hand()
A B C E + (X1 ... X47) --> evaluate_hand()
A B D E + (X1 ... X47) --> evaluate_hand()
A C D E + (X1 ... X47) --> evaluate_hand()
B C D E + (X1 ... X47) --> evaluate_hand()

如果这 235 手牌中的一手评估为 STRAIGHT_FLUSH,您将知道该玩家距离同花顺只有一张牌。