0

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

foreach(card){
  combinations.add(card, card +1)
}

谢谢

4

3 回答 3

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

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

如果您只需要两对组合的数量,请参见此处

于 2010-02-04T15:36:40.460 回答
1

在这个站点上有一些解决组合问题的算法。寻找一个名为

class ChoiceIterable<T> implements Iterable<T[]>
于 2010-02-04T15:38:40.133 回答
1

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

for(i=0;i<cards.length;i++){
   for(j=i+1;j<cards.length;j++){
      combinations.add(cards[i],cards[j]);
   }
}
于 2010-02-04T15:39:13.837 回答