Performance 我如何处理太多的排列?

Performance 我如何处理太多的排列?,performance,artificial-intelligence,permutation,Performance,Artificial Intelligence,Permutation,我的问题是:当有太多的排列需要一个完整的过去时,我如何计算获胜的机会 我正在开发一个扑克德州Hold'Em应用程序。基本功能是概率计算器。一副牌由52张牌组成,每位玩家持有两张牌,5张牌放在桌上,然后对获胜者进行评估。因此,如果桌上有4张牌,那么最后一张牌就有44种可能的结果。当桌上有3张牌时,有45*44排列。但是如果表上没有卡,我必须考虑48×47×46×45×44=205.47和480排列。如果我能够完美地实现“顺序无关紧要”部分,我将拥有1.712.304排列,这对于我的CakePHP

我的问题是:当有太多的排列需要一个完整的过去时,我如何计算获胜的机会


我正在开发一个扑克德州Hold'Em应用程序。基本功能是概率计算器。一副牌由52张牌组成,每位玩家持有两张牌,5张牌放在桌上,然后对获胜者进行评估。因此,如果桌上有4张牌,那么最后一张牌就有44种可能的结果。当桌上有3张牌时,有45*44排列。但是如果表上没有卡,我必须考虑48×47×46×45×44=205.47和480排列。如果我能够完美地实现“顺序无关紧要”部分,我将拥有1.712.304排列,这对于我的CakePHP Web服务器来说仍然是15倍 手是心的5+8黑桃。以下卡片组合可改进此手牌:

  • 有8张以上的卡吗
  • 一个、两个或三个5s
  • 一个、两个或三个8
  • 上述各项的组合
  • 任何出现两次、三次或四次的值
  • 5个十字架或5个钻石
  • 4颗红心或4颗黑桃
  • 6,7,9
  • 4,6,7
  • 4张或5张卡片的类似组合
  • 红心6、7、8、9
  • 与红桃和黑桃相似的组合
对于其中的每一个,您都可以快速计算概率

在早期,您可以通过忽略需要n张以上匹配卡的组合来加速计算,因为它们几乎没有任何效果(每个人在开始时都有机会与皇室同花顺,但大多数人从未获得过一张)


您甚至可以预先计算起始手的值。这些只是大约13×13的值(每个卡有13个选项,适合的或不适合的时间2,除以两个,因为顺序不相关)。 而不是创造和评估每一个可能的组合手,只考虑那些组合实际上改善你的手。 示例(不完整)

手是心的5+8黑桃。以下卡片组合可改进此手牌:

  • 有8张以上的卡吗
  • 一个、两个或三个5s
  • 一个、两个或三个8
  • 上述各项的组合
  • 任何出现两次、三次或四次的值
  • 5个十字架或5个钻石
  • 4颗红心或4颗黑桃
  • 6,7,9
  • 4,6,7
  • 4张或5张卡片的类似组合
  • 红心6、7、8、9
  • 与红桃和黑桃相似的组合
对于其中的每一个,您都可以快速计算概率

在早期,您可以通过忽略需要n张以上匹配卡的组合来加速计算,因为它们几乎没有任何效果(每个人在开始时都有机会与皇室同花顺,但大多数人从未获得过一张)


您甚至可以预先计算起始手的值。这些值大约是13*13(每张卡有13个选项,适合与否用2乘以2,因为顺序不相关)。

与其让CakePHP处理这个问题,不如在本地或远程运行另一个更高效的服务来处理这些请求?与其让CakePHP处理这个问题,为什么不在本地或远程运行另一个更高效的服务来处理这些请求呢?非常感谢。因此,我只考虑改进球员双手的牌,然后我执行我已经实施过的例行程序,所有没有改进的牌都与常规相同。我需要考虑一下。非常感谢。因此,我只考虑改进球员双手的牌,然后我执行我已经实施过的例行程序,所有没有改进的牌都与常规相同。我需要考虑一下。