玩家可以为每位玩家提供一张卡片

时间:2017-08-16 09:21:24

标签: algorithm distribution playing-cards

在一个特技游戏中,通常很容易跟踪每个玩家可能留下的牌。例如,如果以下诉讼是强制性的并且球员不会效仿,那么很明显球员不再拥有该特定诉讼的牌。

这意味着,在游戏过程中,您可以了解每个玩家可能拥有的牌。

有没有办法有效地计算(合理准确)特定玩家实际拥有某张卡的机会?

一种天真的方法是只生成所有剩余卡片的所有排列,并根据前面提到的约束检查哪些排列是可能的。但这不是一种非常有效的方式。

另一种方法是检查其他人可以拥有特定卡的数量。例如,如果3名玩家可能拥有特定牌,则可以使用1/3作为特定玩家拥有特定牌的机会。但这通常是不准确的。

例如:

  • 每位玩家剩下2张牌
  • 玩家A可以拥有AS,KS。
  • 玩家B可以拥有AS,KS,AH和KH。

算法1会正确地发现玩家B有AS的机会是0。 算法2会错误地发现玩家B有AS的机会是0.5。

是否有更好的算法既合理准确又合理快速?

1 个答案:

答案 0 :(得分:0)

从量子力学书中读取一页。考虑到每张卡都处于具有概率的混合状态 - 例如x|AS>+y|KS>+z|AH>+w|KH>。对于36张牌,你得到36 x 36矩阵,其中最初所有值都等于1/36。约束是一行中所有值的总和等于1(每张卡在某处),并且列中所有值的总和为1(每张卡都是一些东西)。对于您的迷你示例,初始矩阵将是

0.25 0.25 0.25 0.25 (AS)
0.25 0.25 0.25 0.25 (KS)
0.25 0.25 0.25 0.25 (AH)
0.25 0.25 0.25 0.25 (KH)
(0)  (1)  (2)  (3)

设A卡为0,1,B卡为2,3。具有AS的B的机会为0.5。 现在你观察到P(0 = AH)= 0,然后你将相应的元素设置为0并按比例改变列和行值,然后是所有其他值,以便总和保持为1:

0.33 0.22 0.22 0.22 (AS)
0.33 0.22 0.22 0.22 (KS)
0.00 0.33 0.33 0.33 (AH)
0.33 0.22 0.22 0.22 (KH)
(0)  (1)  (2)  (3)

添加观测P(0 = KH)= 0,P(1 = AH)= 0,P(1 = KH)= 0得到这个矩阵:

0.50 0.50 0.00 0.00 (AS)
0.50 0.50 0.00 0.00 (KS)
0.00 0.00 0.50 0.50 (AH)
0.00 0.00 0.50 0.50 (KH)
(0)  (1)  (2)  (3)

如您所见,P(2 = AS或3 = AS)= 0,应该如此。 请注意,大多数游戏允许玩家在他或她的手中洗牌(即当B玩牌时,你不知道它是否是(2)或(3))。假设A和B交换卡(1)和(2) - 这使矩阵保持相同 - 然后当B洗牌时,矩阵变为

0.50 0.25 0.00 0.25 (AS)
0.50 0.25 0.00 0.25 (KS)
0.00 0.25 0.50 0.25 (AH)
0.00 0.25 0.50 0.25 (KH)
(0)  (1)  (2)  (3)

另请注意,该模型并不完美 - 它不允许注意观察,例如" B有(AS,KH)或(AH,KS)"。但在某些定义中,#34;相当准确",它可能就是。