java如何輸出排列組合

小億
85
2024-09-26 01:21:09
欄目: 編程語言

在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ù)nr,分別表示從n個(gè)元素中選取r個(gè)元素的排列組合。方法首先檢查邊界條件,如果n < r,則返回空結(jié)果。接下來,使用遞歸的方式生成排列組合。

main方法中,我們調(diào)用permute方法并輸出結(jié)果。例如,當(dāng)n = 4r = 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]]

0