在Java中,可以使用遞歸的方法來實(shí)現(xiàn)排列組合的輸出。以下是一個(gè)簡單的示例,展示了如何使用遞歸生成從n個(gè)元素中選取r個(gè)元素的排列組合:
import java.util.ArrayList;
import java.util.List;
public class PermutationsCombinations {
public static void main(String[] args) {
int n = 4;
int r = 2;
List<List<Integer>> result = permute(n, r);
System.out.println("排列組合結(jié)果: " + result);
}
public static List<List<Integer>> permute(int n, int r) {
List<List<Integer>> result = new ArrayList<>();
if (n < r) {
return result;
}
if (r == 0 || r == n) {
result.add(new ArrayList<>());
return result;
}
for (int i = 0; i < n; i++) {
int[] nums = new int[n];
for (int j = 0; j < n; j++) {
nums[j] = i == j ? 1 : 0;
}
List<Integer> current = new ArrayList<>();
for (int num : nums) {
current.add(num);
}
current.remove(current.size() - r);
List<List<Integer>> remaining = permute(n, r - 1);
for (List<Integer> perm : remaining) {
perm.addAll(current);
result.add(perm);
}
}
return result;
}
}
在這個(gè)示例中,permute
方法接受兩個(gè)整數(shù)參數(shù)n
和r
,分別表示從n個(gè)元素中選取r個(gè)元素的排列組合。方法首先檢查邊界條件,如果n < r
,則返回空結(jié)果。接下來,使用遞歸的方式生成排列組合。
在main
方法中,我們調(diào)用permute
方法并輸出結(jié)果。例如,當(dāng)n = 4
且r = 2
時(shí),輸出結(jié)果為:
排列組合結(jié)果: [[0, 1], [0, 2], [0, 3], [1, 0], [1, 2], [1, 3], [2, 0], [2, 1], [2, 3], [3, 0], [3, 1], [3, 2]]