当前位置: 首页 > 知识库问答 >
问题:

如何从两个数组中获得所有可能的组合?

笪栋
2023-03-14

我有两个数组:

String[] operators = {"+", "-", "*"};
int[] numbers = {48, 24, 12, 6};
48+24+12+6
48+24+12-6
48+24+12*6
48+24-12+6
48+24-12-6
48+24-12*6
..........
48*24*12*6
for (int i = 0; i < operators.length; i++) {
    System.out.println(numbers[0] + operators[i] + numbers[1] +
            operators[i] + numbers[2] + operators[i] + numbers[3]);
}
48+24+12+6
48-24-12-6
48*24*12*6

共有1个答案

通远
2023-03-14

使用三个循环:

for (int i=0; i < operators.length; ++i) {
    for (int j=0; j < operators.length; ++j) {
        for (int k=0; k < operators.length; ++k) {
            System.out.println(numbers[0] + operators[i] + numbers[1] + operators[j] +
                numbers[2] + operators[k] + numbers[3]);
        }
    }
}

您基本上想要取运算符向量的叉积(如果它是向量的话)。在Java中,这转换为一组三层嵌套的循环。

 类似资料:
  • 问题内容: 我已经阅读/尝试了很多关于SO的建议答案,但没有一个能解决问题 如何获得所有可能的组合? 预期产量: 注意:我要寻找的答案应包括 所有组合和所有不同的安排 。例如: ‘Alpha Beta’ 和 ‘Beta Alpha’ 是2个不同的字符串,并且都应位于输出数组中。 提前致谢 问题答案: 我相信您的教授会更满意此解决方案: 这解决了它:

  • 问题内容: 我有一个字符数组c [] [],每个索引都有不同的映射。例如: 我需要以字符串形式返回此数组的所有可能字符组合。也就是说,对于上述字符数组,我应该返回:“ ag”,“ ah”,“ ai”,“ bg”,“ bh”,“ bi”,“ cg”,“ ch”,“ ci”等对于上面只有两件事的字符数组,这样做很容易,但是如果有更多的数组,那么我不知道该怎么办…这就是我要大家提供的帮助!:) 问题答案

  • 问题内容: 有一个包含15个数字的列表,我需要编写一些代码来生成这些数字的所有32,768个组合。 我已经找到了一些代码(通过Googling),这些代码显然可以满足我的需求,但是我发现代码相当不透明并且对使用它很谨慎。另外我觉得必须有一个更优雅的解决方案。 对我而言,唯一发生的就是循环遍历十进制整数1–32768,并将其转换为二进制,然后使用二进制表示形式作为筛选器来选择适当的数字。 有人知道更

  • 我正在组装一个java小程序,使任务在工作中更快、更高效。 用户定义项目列表需要拆分成的三个组的大小。列表中的每个项目根据它被放入三个组中的哪个组具有不同的值。小程序需要显示哪个组合的总价值最高。 示例:带有列的二维整数数组;项目编号、第1组中的值、第2组中的值和第3组中的值。 这样,用户定义组1有3个插槽,组2有3个插槽,组3有2个插槽。 小程序应不按特定顺序显示以下解决方案 我可以管理一种效率

  • 我有一个数字数组,现在我必须通过生成给定数组的所有可能子数组并应用一些条件来找到元素之和。 条件是,对于每个子阵列,获取最小值,并找到其中的元素总数,然后将两者相乘(最小值*总数)。最后,将所有子阵列的所有这些相乘值相加。 以下是问题陈述: 使用下面的公式找到所有可能的子数组的总和: 和(左,右)=(最小的arr[i]) * (∑ arr[i]),其中i的范围从左到右。 例子: 子数组是:[sta

  • 假设我有一个数据集: 我使用: 屈服: 我想使用这三行创建不同的组合,为每个组合形成一个数据集。 组合的示例如下: 另一个是: 第三种可能的组合如下: 最后: PS:在前面的示例中,每个组合(一个数据集)至少有两行, 如何在JAVA中实现这一点?非常感谢。