问题标签 [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.
php - 组合学:在元素保持排序的同时构建 10 组 100 个元素
我有一个关于组合学的问题。不幸的是,我无法抽象地描述它,所以我试图将它解释为一个故事。:)
问题:
- 校园里有100个孩子。
- 假设值为 100-199 厘米,它们都有独特的高度。
- 你想建立 10 个小组,每个小组由 1-99 个孩子组成。
- 当孩子们必须按身高排序时,你怎么能建立所有的组?
- 我需要为这些群体提供所有可能的解决方案,因为找到一个星座并不难。
简短易懂:
所有100个孩子并排站立。您只需要决定在哪里将它们分成组并为此找到所有解决方案。
示例(值是高度):
[120 ... 190 ... 199] ... [126 ... 137 ... 144 ... 188]是不可能的
[101] ... [104 ... 105 ... 112 ... 149] ... [169 ... 189]是可能的
我希望你能帮助我。非常感谢您!
PS:这不是家庭作业。;) 通常,我需要一个函数来处理数字。但是我不能像“在对所有数字进行排序的同时构建 k 组数字”那样抽象地描述这一点。我以为你不会这样理解。:) PHP 的解决方案是最好的,但我也很高兴看到其他语言的解决方案。:)
php - 从多个值列表中查找所有不冲突的值组合
我有以下数组,其中包含值数组:
可以有任意数量的数组,并且一个数组可以包含任意数量的值。我目前有一段代码将生成所有组合,其中从每个数组中获取一个值。例如:
但是,我真正想要的只是每列中只有一个值的组合,即。1ax 不好,因为所有三个值 1、a 和 x 都位于第一列,1by 不好,因为 b 和 y 位于第二列。所以从上面的例子中只有这些组合是有效的:
我最初计划只生成所有组合,然后过滤掉有冲突的组合,但这并不能扩展,因为这是一个过于简单的例子,在实际应用中,可能会有数百万个组合(包括冲突的组合) )。
任何人都可以提供更好的方法来解决这个问题吗?我正在使用 PHP,但是任何清楚地展示逻辑的代码示例都会有所帮助。
提前致谢。
更新:
我已经测试了针对更大数据集的解决方案,以获得一些基准,这些是迄今为止的结果:
乔什戴维斯第二个解决方案:
乔什戴维斯:
汤姆·黑格:
python - 最大数量组合
我正在尝试使用从 0 到 9 的所有数字生成一组四个数字中所有可能的数字组合的列表。
我已经接近了,但输出并未显示从 0000 一直到 9999 的所有可能组合。
关于为什么以下代码删除某些组合的任何线索?
php - php数组组合
我想从一组 [0...(n-1)] 中生成长度 r 的所有组合
所以输出应该是这样的(n = 6 r = 2)
具有类似的功能
其中 $select = r 和 $max = n
这是我目前的尝试,但我的大脑今晚似乎没有工作,它只适用于 $select = 2
提前致谢
algorithm - 找出最便宜组合的算法
我有几套就像
依此类推...都是随机的,现在考虑 D、E 和 F 组 我想为一组买最便宜的组合, SET Q(7,8,6,5) 答案应该是 SET D + SET E,而不是SET F
请链接...谢谢
combinations - 所有可能的元素组合
我想知道一种可能的算法来计算所有可能的组合,而无需重复,从长度 = 1 开始,直到长度 = N 个元素。
例子:
元素:1、2、3。
输出:
algorithm - 如何生成整数分区?
我有一个像 1,2,3 这样的数字列表,我想找到总和为特定数字(如 5)的所有组合模式。例如:
只要不超过您的总和,您就可以重复数字。哪种方式最好编程?
c# - c# winforms 应用程序中的按键组合
有谁知道我如何设置一个事件处理程序,以便如果击键 Alt + Shift + Ctrl + 一个字母会做些什么?
ruby - Ruby中两个数组的组合
Ruby实现以下的方法是什么?
我想要一个数组:
c++ - 如何通过 STL 算法获得两个数组(向量)的组合?
我有v1
,v2
我应该如何得到一个v
像下面这样的新的?
我知道我可以使用两个循环来做到这一点,但是如果有更惯用的方式,比如使用 STL 算法?
编辑:
v1
并且v2
不必具有相同的大小。