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

时间:2016-10-29 17:31:28

标签: python math statistics simulation poker

我目前正在制作关于python扑克的模拟,我在翻牌后坚持计算出局,转

我想学习如何在翻牌时计算出局数。 换句话说,我想学习如何让我的模拟认识到我需要一张卡片才能直线。如果丢失的牌在中间,我的出局将是4.如果是在直道的开头或结尾,我的出局将是8。

例如:

我的口袋里有(手)5-Spades和6-Diamond

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

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

在扑克中,这场抽签是一场内线直接抽签。如果我依次画河流或河流,我会直接画画。由于一个牌组中有4个7,所以我的出局是4个直道。

这只是一个关于出局的基本例子。

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

亲切的问候

2 个答案:

答案 0 :(得分:0)

没有其他知识,您可以使用

计算出概率
 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,第二个不是七个

   4 / 47  * 43 / 46

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

   43 / 47 * 4 / 46

既不是七人制

   43 / 47 * 42 / 46

答案 1 :(得分:0)

首先,你需要一些可以识别各种手牌的代码(四种类型,同花顺等)。然后,你的算法应该从玩家的手中一次拿出四张牌,然后循环浏览牌组中的所有剩余牌,一次一张,将它们添加到玩家手中并测试它们通过一次平局看看哪些牌是可能的。

也就是说,假设牌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,你就会知道该牌手距离同花顺牌是一张牌。