在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> result = permute(n, r); System.out.println("排列组合结果: " + result); } public static List
> permute(int n, int r) { List
> 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
current = new ArrayList<>(); for (int num : nums) { current.add(num); } current.remove(current.size() - r); List > remaining = permute(n, r - 1); for (List
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]]