我正在尝试用java构建一个扑克机器人。我写了手评估课,我即将开始喂养神经网络,但我遇到了问题。每一步都需要每手牌的胜算:翻牌前,翻牌圈,转牌圈,河牌圈。
我的问题是,有52张牌,5张牌的组合是2,598,960。所以我需要为每个可能的牌存储2,598,960赔率。这个数字很大,这些只是我需要的河流。
所以我有两个选择:
有没有第三个更好的选择来处理这个问题?
答案 0 :(得分:0)
第三个选项是使用磁盘...但我的第一选择是根据需要计算赔率。
为什么你需要计算5张牌的所有组合,很多这些牌的价值都相同,因为有4种套牌在牌之间有重复。
就个人而言,我会根据你的手牌数量和手牌数量来对你的牌进行排名。通过这个,您可以通过乘以活动牌数来计算赢得赌桌的概率。
答案 1 :(得分:0)
忽略颜色怎么样?从52个可能的值,您可以下降到13.您只剩下6175个选项。当然,颜色对于同花顺来说很重要 - 但是在这里,它几乎是二元的 - 所有的颜色是否相同?所以我们在12350(包括一些不可能的组合,实际上它是7462和其他组合一样,一个数字不止一次,所以颜色必须不同)。
如果订单很重要(例如开始手,翻转,翻牌,河牌或者如何调用),它会更多,但它仍然少于你的两百万。尝试简化你的问题,你会发现它们可以解决。