从标准套牌的子集中获取每两张牌组合

时间:2010-02-04 15:33:41

标签: java performance poker

我有一张标准的牌组,然后从剩余的牌中删除了一些,我想要计算所有可能的两张牌组合。例如,47张卡有47种选择2种组合。任何人都可以想到除了

之外的有效方法
foreach(card){
  combinations.add(card, card +1)
}

由于

3 个答案:

答案 0 :(得分:3)

for(int i=0; i<47; i++) {
  for(int j=i+1; j<47; j++) {
     combinations.add(i, j);
  }
}

这是最有效的方式,因为它只通过每一对。

如果您只想要两对组合的数字,请参阅here

答案 1 :(得分:1)

On this site有一些算法可以解决组合问题。寻找一个名为

的类
class ChoiceIterable<T> implements Iterable<T[]>

答案 2 :(得分:1)

如果您只需要两个卡片子集(而不是可变数字),则可以使用两个嵌套for循环轻松完成此操作。

for(i=0;i<cards.length;i++){
   for(j=i+1;j<cards.length;j++){
      combinations.add(cards[i],cards[j]);
   }
}