由于甲板上有52张牌,我们知道有52 choose 2 = 1326个不同的比赛,但是在翻牌前扑克中,这可以分为169个不同的牌,例如AK得胜和AK得胜,无论是A心K心还是A锹K锹翻牌前没什么区别。我的问题是,是否存在一个很好的数学属性,在其中我可以唯一地索引这169手中的每一个(最好从0到168)。我正在尝试将查找表创建为double[][] = new double [169][169],但是无法将诸如AK(相同花色的A和A)之类的手表示更改为该数组中的唯一索引。

最佳答案

如果两张纸牌是相同的,则对两张纸牌进行排序,以使下一张纸牌优先。如果它们的西装不同,则对两张卡进行排序,以使下一张卡排在最后。当卡片的等级和花色相同时,将保留特殊情况。
为每个等级分配一个介于0到12之间的值,并使用以13为底的计数系统。该系统中的最大值是12 * 13 + 12 = 168。
最后,对于两张卡具有相同等级和适合度的情况,取等级值并加169。这些情况将在169-181范围内。


也许我的数学是错误的,但是我想出了182对不同的卡片。我不是游戏专家,所以也许我错过了一些东西。

10-07 19:01