首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Java中通过任意数字组创建笛卡尔积?

在Java中,通过任意数字组创建笛卡尔积的方法可以使用递归实现。以下是一个简单的示例代码:

代码语言:java
复制
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CartesianProduct {
    public static void main(String[] args) {
        List<List<Integer>> input = new ArrayList<>();
        input.add(Arrays.asList(1, 2, 3));
        input.add(Arrays.asList(4, 5));
        input.add(Arrays.asList(6, 7, 8, 9));

        List<List<Integer>> cartesianProduct = cartesianProduct(input);
        System.out.println(cartesianProduct);
    }

    public static List<List<Integer>> cartesianProduct(List<List<Integer>> inputLists) {
        if (inputLists.size() == 0) {
            List<List<Integer>> result = new ArrayList<>();
            result.add(new ArrayList<>());
            return result;
        } else {
            List<List<Integer>> smallerCartesianProduct = cartesianProduct(inputLists.subList(1, inputLists.size()));
            List<List<Integer>> result = new ArrayList<>();

            for (List<Integer> list : smallerCartesianProduct) {
                for (Integer item : inputLists.get(0)) {
                    List<Integer> newList = new ArrayList<>(list);
                    newList.add(item);
                    result.add(newList);
                }
            }

            return result;
        }
    }
}

在这个示例中,我们首先创建了一个名为input的列表,其中包含了三个子列表,每个子列表包含了一组数字。然后,我们调用了cartesianProduct方法来计算这些数字的笛卡尔积。

cartesianProduct方法使用递归来计算笛卡尔积。如果输入列表为空,则返回一个包含一个空列表的列表。否则,我们递归地计算较小的笛卡尔积,并将结果与当前列表中的每个元素组合。最后,我们将组合后的结果添加到新的列表中并返回。

在这个示例中,我们使用了Java的列表来存储数字,但是这个方法也可以应用于其他类型的数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券