问题标签 [combinations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
690 浏览

php - 组合学:在元素保持排序的同时构建 10 组 100 个元素

我有一个关于组合学的问题。不幸的是,我无法抽象地描述它,所以我试图将它解释为一个故事。:)

问题:

  1. 校园里有100个孩子。
  2. 假设值为 100-199 厘米,它们都有独特的高度。
  3. 你想建立 10 个小组,每个小组由 1-99 个孩子组成。
  4. 当孩子们必须按身高排序时,你怎么能建立所有的组?
  5. 我需要为这些群体提供所有可能的解决方案,因为找到一个星座并不难。

简短易懂:

所有100个孩子并排站立。您只需要决定在哪里将它们分成组并为此找到所有解决方案。

示例(值是高度):

[120 ... 190 ... 199] ... [126 ... 137 ... 144 ... 188]是不可能的

[101] ... [104 ... 105 ... 112 ... 149] ... [169 ... 189]是可能的

我希望你能帮助我。非常感谢您!

PS:这不是家庭作业。;) 通常,我需要一个函数来处理数字。但是我不能像“在对所有数字进行排序的同时构建 k 组数字”那样抽象地描述这一点。我以为你不会这样理解。:) PHP 的解决方案是最好的,但我也很高兴看到其他语言的解决方案。:)

0 投票
9 回答
2168 浏览

php - 从多个值列表中查找所有不冲突的值组合

我有以下数组,其中包含值数组:

可以有任意数量的数组,并且一个数组可以包含任意数量的值。我目前有一段代码将生成所有组合,其中从每个数组中获取一个值。例如:

但是,我真正想要的只是每列中只有一个值的组合,即。1ax 不好,因为所有三个值 1、a 和 x 都位于第一列,1by 不好,因为 b 和 y 位于第二列。所以从上面的例子中只有这些组合是有效的:

我最初计划只生成所有组合,然后过滤掉有冲突的组合,但这并不能扩展,因为这是一个过于简单的例子,在实际应用中,可能会有数百万个组合(包括冲突的组合) )。

任何人都可以提供更好的方法来解决这个问题吗?我正在使用 PHP,但是任何清楚地展示逻辑的代码示例都会有所帮助。

提前致谢。


更新:

我已经测试了针对更大数据集的解决方案,以获得一些基准,这些是迄今为止的结果:

乔什戴维斯第二个解决方案:

乔什戴维斯:

汤姆·黑格:

0 投票
4 回答
3132 浏览

python - 最大数量组合

我正在尝试使用从 0 到 9 的所有数字生成一组四个数字中所有可能的数字组合的列表。

我已经接近了,但输出并未显示从 0000 一直到 9999 的所有可能组合。

关于为什么以下代码删除某些组合的任何线索?

0 投票
1 回答
2087 浏览

php - php数组组合

我想从一组 [0...(n-1)] 中生成长度 r 的所有组合

所以输出应该是这样的(n = 6 r = 2)

具有类似的功能

其中 $select = r 和 $max = n

这是我目前的尝试,但我的大脑今晚似乎没有工作,它只适用于 $select = 2

提前致谢

0 投票
1 回答
297 浏览

algorithm - 找出最便宜组合的算法

我有几套就像

依此类推...都是随机的,现在考虑 D、E 和 F 组 我想为一组买最便宜的组合, SET Q(7,8,6,5) 答案应该是 SET D + SET E,而不是SET F

请链接...谢谢

0 投票
1 回答
5400 浏览

combinations - 所有可能的元素组合

我想知道一种可能的算法来计算所有可能的组合,而无需重复,从长度 = 1 开始,直到长度 = N 个元素。

例子:

元素:1、2、3。

输出:

0 投票
7 回答
5534 浏览

algorithm - 如何生成整数分区?

我有一个像 1,2,3 这样的数字列表,我想找到总和为特定数字(如 5)的所有组合模式。例如:

只要不超过您的总和,您就可以重复数字。哪种方式最好编程?

0 投票
2 回答
1832 浏览

c# - c# winforms 应用程序中的按键组合

有谁知道我如何设置一个事件处理程序,以便如果击键 Alt + Shift + Ctrl + 一个字母会做些什么?

0 投票
3 回答
30408 浏览

ruby - Ruby中两个数组的组合

Ruby实现以下的方法是什么?

我想要一个数组:

0 投票
1 回答
1262 浏览

c++ - 如何通过 STL 算法获得两个数组(向量)的组合?

我有v1v2我应该如何得到一个v像下面这样的新的?

我知道我可以使用两个循环来做到这一点,但是如果有更惯用的方式,比如使用 STL 算法?

编辑:

v1并且v2不必具有相同的大小。