【发布时间】:2015-03-15 19:23:52
【问题描述】:
我想生成一个集合列表的所有可能排列,但排列并不都符合条件。排列是集合列表的子集排列的组合。
例如,我们有以下由两个子集组成的列表:List = {(1,2), (3,4)}; 允许的排列是:1234/1243/2134/2143/3412/4312/3421/4321 不允许以下排列:1423/3142/1324/1342/2431/2341 / ....
我已经生成了所有可能的排列,但不是那些可接受的排列。
static void permute(ArrayList<Integer> arr, int k){
for(int i = k; i < arr.size(); i++){
java.util.Collections.swap(arr, i, k);
permute(arr, k+1);
java.util.Collections.swap(arr, k, i);
}
if (k == arr.size() -1){
System.out.println(java.util.Arrays.toString(arr.toArray()));
}
}
我真的需要这段代码来计算欧文的价值(博弈论)。提前谢谢你
【问题讨论】: