在Java中,可以使用遞歸的方法來實現排列組合的輸出。以下是一個簡單的示例,展示了如何使用遞歸生成從n個元素中選取r個元素的排列組合:
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("排列組合結果: " + 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;
}
}
在這個示例中,permute
方法接受兩個整數參數n
和r
,分別表示從n個元素中選取r個元素的排列組合。方法首先檢查邊界條件,如果n < r
,則返回空結果。接下來,使用遞歸的方式生成排列組合。
在main
方法中,我們調用permute
方法并輸出結果。例如,當n = 4
且r = 2
時,輸出結果為:
排列組合結果: [[0, 1], [0, 2], [0, 3], [1, 0], [1, 2], [1, 3], [2, 0], [2, 1], [2, 3], [3, 0], [3, 1], [3, 2]]