我有一张标准的牌组,然后从剩余的牌中删除了一些,我想要计算所有可能的两张牌组合。例如,47张卡有47种选择2种组合。任何人都可以想到除了
之外的有效方法foreach(card){
combinations.add(card, card +1)
}
由于
答案 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]);
}
}