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

2023-12-27

假设我有 2 组数字:

{1, 2, 3},
{4, 5}

我想创建一个算法(用Java)输出以下6种组合:

1,4
1,5
2,4
2,5
3,4
3,5

可以有任意数量的组以及每个组内任意数量的成员。因此,在上面的示例中,有 2 个组,第一个组有 3 名成员,第二组有 2 名成员。另一个示例如下(3 个组,第一组 3 名成员,第二组和第三组 2 名成员):

{1, 2, 3},
{4, 5},
{6, 7}

这将产生以下 12 种组合:

1,4,6
1,4,7
1,5,6
1,5,7

2,4,6
2,4,7
2,5,6
2,5,7

3,4,6
3,4,7
3,5,6
3,5,7

我怎样才能在Java中做到这一点?我正在尝试使用递归,并且我看过类似的问题 https://stackoverflow.com/questions/1313642/simulating-nested-loops已经,但我仍然不够。谢谢您的帮助! (P.S.这不是家庭作业)


有点无聊,决定尝试一下。应该正是您所需要的:

public static void main(String args[]) {
    ArrayList<int[]> input = new ArrayList<int[]>();
    input.add(new int[]{1, 2, 3});
    input.add(new int[]{4, 5});
    input.add(new int[]{6, 7});

    combine(input, new int[input.size()], 0);
}

private static void combine(ArrayList<int[]> input, int[] current, int k) {
    if (k == input.size()) {
        for (int i = 0; i < k; i++) {
            System.out.print(current[i] + " ");
        }
        System.out.println();
    } else {
        for (int j = 0; j < input.get(k).length; j++) {
            current[k] = input.get(k)[j];
            combine(input, current, k + 1);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中创建任意数字组的笛卡尔积? 的相关文章

  • 如何使用 SimpleDateFormat 解析多种格式的日期

    我正在尝试解析文档中的一些日期 用户似乎以类似但不完全相同的格式输入了这些日期 以下是格式 9 09 9 2009 09 2009 9 1 2009 9 1 2009 尝试解析所有这些内容的最佳方法是什么 这些似乎是最常见的 但我想让我困扰
  • 如何从秘密字符串中制作 HMAC_SHA256 密钥以在 jose4j 中与 JWT 一起使用?

    我想生成 JWT 并使用 HMAC SHA256 对其进行签名 对于该任务我必须使用jose4j https bitbucket org b c jose4j wiki Home 我尝试根据秘密生成密钥 SecretKeySpec key
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • 启动Java项目时发生类冲突:ClassMetadataReadingVisitor将接口org.springframework.asm.ClassVisitor作为超类

    我正在使用最新的Spring框架版本 3 2 2 RELEASE 开发一个Java Web项目 但是现在项目启动时遇到了问题 详细错误是 java lang IncompleteClassChangeError 类 org springfr

随机推荐

  • 如何同步div的两个滚动条

    我有这个文件比较代码 http jsfiddle net CrN6X http jsfiddle net CrN6X 现在它满足了我的需要 一个只垂直滚动的大 div 两个仅水平滚动的较小潜水 这样我可以很容易地比较我的文件 但我有一个问题
  • 按内部数组的字段之一对多维数组进行排序

    如何按内部数组的字段之一对多维数组进行排序 在Java中 如何创建这样的多维数组 以及如何按 X 字段对其进行排序 有什么例子吗 Array 0 gt Array name gt Sony TV price gt 600 00 1 gt A
  • 获取两个条件(在不同数组上)为真的数组的索引

    我有两个 numpy 数组 a and b 我想选择所有索引a 1 and b 0 也就是说 如果我有以下数组 a 0 1 3 5 1 1 2 b 1 0 2 5 3 0 6 我想取回以下索引 1 5 我应该如何在 numpy 中执行此操作
  • 将“rand()”与“having”一起使用

    我有一个包含记录列表的表 每次迭代 必须从特定偏移量开始随机选择一组 每一行都有机会被选取 例如 新的或不经常选取的行会被选取更多 然而 某物不起作用 导致返回不满足使用别名的条件的行rand 我正在尝试使用以下查询 select id p
  • ag 网格服务器端分页“当网格位于绘制行中间时无法让网格绘制行”

    我有一个像这样的聚合组件 private gridOptions columnDefs this columnDefs frameworkComponents buttonRenderer ButtonRenderer pagination
  • 如何使用 gsub 将包含下划线的字符串部分转换为 Logstash 中的括号

    我想转换 例如 你好 1 再见 到 你好 1 再见 注意 1 即括号内仅包含数字 我从这样的事情开始 但不起作用 filter mutate gsub gt String D D Note that String here could be
  • 如果 edittext 包含该单词,如何为 Android 文本的一部分着色

    只要用户在编辑文本中输入 house 我就会尝试为单词 house 着色 这就是我所做的 if textA getText toString equals house String name String valueOf textA get
  • C++ 中 .inl 文件的含义

    在 inl 文件中进行声明有哪些优点 我什么时候需要使用相同的 inl文件从来都不是强制性的 对编译器没有特殊意义 这只是构建代码的一种方式 为可能阅读代码的人提供提示 I use inl文件分两种情况 用于内联函数的定义 用于函数模板的定
  • Symfony 控制器无法访问容器

    因此 我重新安装了 Symfony 3 尝试设置一些 API 路由 但我无法访问控制器内的容器 我的控制器从基本 Symfony 控制器扩展而来 它具有ContainerAwareTrait 但是当我尝试做时 this gt contain
  • Chrome 打包应用程序无法与 jquery 和 jquery mobile 配合使用

    使用 jQuery 1 10 2 和 jQuery Mobile 1 3 2 我尝试使用以下简单的 html 创建一个 chrome 打包应用程序 div div 有两个问题 首先 jQuery 将拦截加载 events js 的脚本标签并
  • Elastic beanstalk 上的 psycopg2 - 无法部署应用程序

    我正在将我的第一个应用程序 Flask 部署到 EB 但遇到了障碍 使用 PostgreSQL 需要我安装 psycopg2 但我不知道如何让它运行 我在这篇文章中看到 Amazon Elastic Beanstalk 上的 Psycopg
  • django-two-factor-auth 无法访问管理站点

    我正在将 django two factor auth 用于网络应用程序 我无法访问管理页面 我知道我输入了正确的凭据 当我输入不正确的凭据时 我会收到相应的错误消息 当我输入正确的凭据时 页面会使用以下 URL 重新加载 http loc
  • Rails:不是 ember,不是 JS 响应,而是介于两者之间的东西

    我正在开发一个标准的 Rails 应用程序 到目前为止我还没有使用任何 AJAX 只是使用了很好的 HTML 我的计划是迭代地添加 远程 链接和所有此类内容以及对 JS 响应的支持 因为我知道生成 JS 服务器端是非常非常邪恶的 但我发现它
  • 在 PHP 中压缩 GIF 图像质量?

    如何在 PHP5 中压缩 GIF 图像文件 我知道可以像这样使用 JPG imagejpeg resource filename quality 根据http us php net manual en function imagejpeg
  • JavaScript 中测试给定参数是否为平方数的最佳方法是什么?

    我创建了一个函数来测试给定的参数是否是平方数 在这里阅读有关平方数的内容 https en wikipedia org title Square number https en wikipedia org title Square numb
  • 如何将 summarise_each 应用于除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 我正在分析一组包含许多列 近 30 列 的数据 我想根据两列对数据进行分组 并将求和函数和均值函数应用于除时间戳之外的所有列 如何在除时间戳之外的所有列上使用 summarise each 这是我的代码草案 但显
  • Javascript 注入浏览器

    每当我访问任何页面时 我都会使用 4g wifi 互联网 它会不断加载 当我查看页面的源代码时 会发现代码中注入了一个脚本 请帮助它真的很烦人 我刚刚发现这是我的 ISP 在浏览器中注入了 javascript 所以我通过使用解决了这个问题
  • Java 枚举方法到 Delphi

    public enum HTTPHeaderKey CACHE CONTROL Cache Control CONNECTION Connection TRANSFER ENCODING Transfer Encoding HOST Hos
  • 在 SQL Server 2008 中存储数组

    我正在使用 SQL Server 2008 基于服务的数据库 开发联系人管理应用程序 大多数联系人都有多个电子邮件或多个电话号码 那么有没有办法在 SQL Server 中将数组存储为数据类型呢 或者有人有这种方式的替代方法吗 您需要创建单
  • 如何在Java中创建任意数字组的笛卡尔积?

    假设我有 2 组数字 1 2 3 4 5 我想创建一个算法 用Java 输出以下6种组合 1 4 1 5 2 4 2 5 3 4 3 5 可以有任意数量的组以及每个组内任意数量的成员 因此 在上面的示例中 有 2 个组 第一个组有 3 名成