[英]How to I generate all the possible permutations 4 in length from 5 numbers?
因此,我希望找出可以完成此操作的代碼:
public List<List<Integer>> create4(List<Integer> dice) {
//unknown code
return listOf4s;
}
因此,骰子將始終是5個整數的列表,
我想從5個整數中僅使用4個數字來創建每個可能排列的列表。
我希望我已經說得足夠清楚了。
我已經搜索過,但還沒有看到我可以使用的任何內容。 任何幫助將是巨大的!
Web上有很多示例代碼,您可以根據需要對其進行重新調整。 例如,查看此排列生成器文章以開始使用。
我沒有嘗試過,但希望能有所幫助。
public List<List<Integer>> createN(List<Integer> dice) {
if (dice.size() == 1) {
List<List<Integer>> permutations = new ArrayList<List<Integer>>();
permutations.add(dice);
return permutations;
}
else {
List<List<Integer>> permuations = new ArrayList<List<Integer>>();
for (int i=0;i<dice.size();i++) {
List<Integer> remainingElementsInPermutationSet = new ArrayList<Integer>();
Integer firstElementInPermutationSet = null;
for (int j=0;j<dice.size();j++) {
if (i==j) {
firstElementInPermutationSet = dice.get(j);
}
else {
remainingElementsInPermutationSet.add(dice.get(j));
}
}
List<List<Integer>> remainderPermutations = createN(remainingElementsInPermutationSet);
for (List<Integer> permutationRemainer : remainderPermutations) {
List<Integer> permutation = new ArrayList<Integer>();
permutation.add(firstElementInPermutationSet);
permutation.addAll(permutationRemainer);
permuations.add(permutation);
}
}
return permutations:
}
}
我傾向於喜歡較短的代碼;)
public List<List<Integer>> create4(List<Integer> dice) {
List<List<Integer>> listOf4s = new ArrayList<List<Integer>>();
for(Integer num : dice) {
List<Integer> dice2 = new ArrayList<Integer>(dice);
dices2.remove(num);
listOf4s.add(dices2);
}
return listOf4s;
}
這就是我使用@btreat的想法所做的,並且效果很好。
public List<List<Integer>> create4(List<Integer> dice) {
List<List<Integer>> permutations = new ArrayList<List<Integer>>();
for(int i = 0; i < dice.size(); i++) {
List<Integer> includedPermutation = new ArrayList<Integer>();
for(int j = 0; j < dice.size(); j++) {
if(i!=j) {
includedPermutation.add(dice.get(j));
}
}
permutations.add(includedPermutation);
}
return permutations;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.