亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Java笛卡爾積的遞歸實現方式是什么

小樊
82
2024-08-11 00:51:38
欄目: 編程語言

在Java中實現笛卡爾積的遞歸方式可以通過一個遞歸函數來實現。下面是一個簡單的例子:

import java.util.ArrayList;
import java.util.List;

public class CartesianProduct {
    public static List<List<Integer>> cartesianProduct(List<List<Integer>> lists) {
        List<List<Integer>> result = new ArrayList<>();
        cartesianProductHelper(lists, result, 0, new ArrayList<>());
        return result;
    }

    private static void cartesianProductHelper(List<List<Integer>> lists, List<List<Integer>> result, int index, List<Integer> current) {
        if (index == lists.size()) {
            result.add(new ArrayList<>(current));
            return;
        }

        for (int i = 0; i < lists.get(index).size(); i++) {
            current.add(lists.get(index).get(i));
            cartesianProductHelper(lists, result, index + 1, current);
            current.remove(current.size() - 1);
        }
    }

    public static void main(String[] args) {
        List<List<Integer>> lists = new ArrayList<>();
        lists.add(List.of(1, 2));
        lists.add(List.of(3, 4));
        lists.add(List.of(5, 6));

        List<List<Integer>> result = cartesianProduct(lists);

        for (List<Integer> tuple : result) {
            System.out.println(tuple);
        }
    }
}

在上面的代碼中,cartesianProduct函數接受一個包含多個列表的列表作為輸入,然后調用cartesianProductHelper函數進行遞歸計算笛卡爾積。在cartesianProductHelper函數中,我們首先檢查當前索引是否等于列表的大小,如果是則將當前結果添加到最終結果中。否則,我們遍歷當前列表中的元素,并遞歸調用cartesianProductHelper函數來計算下一個列表的笛卡爾積。

0
灵璧县| 晋中市| 佛坪县| 湘阴县| 简阳市| 芦溪县| 扎赉特旗| 江口县| 平乐县| 昆山市| 大同县| 盐亭县| 横山县| 金门县| 丁青县| 伊金霍洛旗| 即墨市| 衡水市| 杨浦区| 桐城市| 南丰县| 东明县| 潮安县| 无棣县| 溆浦县| 潜江市| 宿松县| 卓尼县| 镇雄县| 新昌县| 泊头市| 榆中县| 碌曲县| 青阳县| 海城市| 得荣县| 祁门县| 兴仁县| 大同市| 宝兴县| 丰原市|