问题标签 [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 回答
315 浏览

vb.net - 为更大的列表调整组合代码

我有以下代码可以为一个小列表生成字符串组合,并希望将其调整为包含 300 多个字符串单词的大列表。任何人都可以建议如何更改此代码或使用不同的方法。

'

变化//

对于 wordDistance = 1 到 inputList.Count.ToString / 2

0 投票
1 回答
635 浏览

partitioning - 计算所有等于 1 和 0 的二进制数

我正在实现等边双向分区算法的二进制表示,我想知道迭代具有相等(N/2)1 和 0 的 N 位的所有组合的最佳方法是什么。我试图找到最快的方法,而不是最容易编码的方法。谢谢。

0 投票
7 回答
4902 浏览

c# - 从一组 x 个项目中随机选择的 n 个项目的所有可能组合(算法)

我有一组 x 字符串项,例如(“A”,“B”,“C”,“D”,“E”,“F”)我需要知道计算 n 项组合的数量以及什么的公式是生成所有可能组合的算法,例如,如果我们需要从列表中随机选择 4 个项目。这 4 个项目可能是:("A","B","C","D") 或 ("A","B","C","E") 或 ("A","B" ,"C","F") 或 ("A","B","D","E") ...等我需要计算在不重复的情况下将生成多少组项目的公式,即我们考虑 ("A","B","C","D" ) 作为结果组合之一,我们不能将相同的项目视为另一个结果组合,并替换集合中项目的位置,例如 ("A","B","D","C") 我还需要算法以任何编程语言生成所有可能的组合。[C#,VB.NET,Java,C++]

感谢您的任何帮助。

0 投票
2 回答
575 浏览

enumeration - 枚举不同类型列表的所有组合

给定两个不同类型的 IEnumberables,迭代两个列表以对所有可能的组合执行操作的最佳实践是什么(考虑可读性和可维护性)?

我最初的解决方案是使用嵌套的 foreach 循环,遍历第一个 IEnumerable,然后在该循​​环内,遍历第二个 IEnumerable,并将外部循环和当前循环的值传递给目标方法。例如。:

我尝试使用 LINQ 对其进行重构,但最终得到的结果没有明显的优势,而且似乎不太直观。此处的搜索显示了许多关于嵌套 foreachs 以迭代子属性的问题,但我找不到任何关于迭代两个不同列表的信息。

0 投票
6 回答
5839 浏览

c++ - 幂集中组合或子集的 next_permutation

是否有一些等效的库或函数可以为我提供一组值的下一个组合,例如 next_permutation in 对我有用吗?

0 投票
4 回答
3134 浏览

c# - 用于找出不同可能组合的 C# 算法

我有 10 个盒子,每个盒子可以容纳一组/类型的物品中的一个,每个“组”类型只适合 10 种盒子类型中的一种。项目池可以有 n 个项目。这些组具有完全不同的项目。每个项目都有一个价格,我想要一个算法来生成所有不同的可能性,所以我可以根据项目属性计算出不同的价格点与每个项目的自定义等级/重量分配。

所以问题的小图

BOX A - 里面可以有物品 1,2,3,4

BOX B - 可以有物品 6,7,8,9,10,11,12

BOX C - 可以有项目 13,15,16,20,21

更多详细信息
该解决方案将是一组 BOX A、BOX B 和 BOX C,根据这组盒子具有最高排名。每个盒子只能包含该盒子的指定物品之一。一个物品就是一个物体,这个物体有3个属性(硬度、弹性、强度)。每个属性可以有 1-100 的分数。目标是为每个属性输入一个权重,然后逻辑将遍历所有项目并根据每个属性的权重确定排名靠前的项目组合。为了便于解释,我为每个项目使用了 3 个属性,但项目可以有大约 10 个不同的属性。

这些项目存储在一个数据库中,它们有一列表示它们可以进入哪个盒子。所有盒子类型都存储在一个数组中,我可以将这些项目放在一个通用列表中。任何人都看到了一种简单的方法来做到这一点。

我试过做 10 个嵌套的 foreach,看看是否能找到更简单的方法。嵌套循环将需要很多小时才能运行。对于每个的嵌套基本上是拉所有组合,然后为每个组合计算一个排名,并存储排名前10的项目组合以供输出

0 投票
1 回答
5917 浏览

python - 在python中生成鼠标-键盘组合事件

我希望能够同时进行按键和鼠标点击的组合,例如Control+LeftClick

目前我可以使用以下代码进行控制,然后左键单击:

它的作用是按下键盘上的控制键,然后单击。我需要它来保持按住控件的时间更长,并在它仍然被按下时返回以继续运行代码。是否有一种可能较低级别的方式来表示按下键,然后在代码中告诉它抬起键,例如鼠标在做什么?

0 投票
2 回答
873 浏览

python - LSAT 的逻辑游戏部分出现了哪类组合问题?

编辑:请参阅以编程方式解决“谁拥有斑马”?对于类似的问题

LSAT 中有一类逻辑问题是这样的:

广播的七个连续时间段(按时间顺序 I 到 7 编号)将被六首歌曲磁带(G、H、L、O、P、S)和恰好一个新闻磁带填满。每个磁带被分配到不同的时隙,并且没有磁带比任何其他磁带长。广播受以下限制:
L 必须在 O 之前立即播放。
新闻磁带必须在 L 之后的某个时间播放
。G 和 P 之间必须恰好有两个时隙,无论 G 是否在 P 之前或是否G 在 P 之后。

我有兴趣生成一个满足条件的排列列表作为学习测试和编程挑战的一种方式。但是,我不确定这是哪一类排列问题。我将类型问题概括如下:

给定一个长度为 n 的数组 A:

  1. 在 A 中,一组 n 个独特的项目有多少种排列方式?例如。有多少种方法可以重新排列 ABCDEFG?
  2. 如果唯一项目集合的长度小于 A 的长度,如果集合中的项目可能出现不止一次,那么集合在 A 中的排列方式有多少?例如。ABCDEF => AABCDEF; ABBCDEF 等
  3. 如果集合中的项目受到“阻塞条件”的约束,那么在 A 内可以排列一组唯一项目的方式有多少?

我的想法是对限制进行编码,然后使用 Python 的 itertools 之类的东西来生成排列。欢迎提出想法和建议。

0 投票
4 回答
785 浏览

python - 用于从字典中计算附加组合的 Python 脚本

我正在尝试编写一个脚本,该脚本将采用一个项目字典,每个项目包含 0 到 10 的值的属性,并添加各种元素以选择哪些项目组合达到所需的总数。我还需要脚本来执行此操作,仅使用具有相同“插槽”的项目。

例如:

然后,脚本需要从“item_list”dict 中选择每个“slot”使用 1 个项目的组合,以便在添加时达到预期的结果。

例如,如果期望的结果是:'prop_a': 3, 'prop_b': 3, 'prop_c': 8, 'prop_d': 0, 脚本会选择 'item_2', 'item_6' 和 'item_9',以及任何其他有效的组合。

任何想法如何做到这一点?它不需要在 python 中,甚至不需要一个完整的脚本,但对我来说,理论上如何做到这一点的解释就足够了。我已经尝试过遍历每个组合,但这似乎很快就让我们掌握了并且无法管理。实际脚本将需要使用 20 个不同的“插槽”对大约 1,000 个项目执行此操作,每个“插槽”具有 8 个属性。

谢谢您的帮助!

0 投票
2 回答
209 浏览

c++ - 列表 - 字符串 - 文本文件

我有几个关于文本文件、列表和字符串的问题。

我想知道是否可以放入读取文本文件中文本的代码,然后使用“字符串行;” 或其他东西来定义文本的每一行并将它们全部变成一个列表。所以我可以对行进行排序,删除一行或两行,甚至全部删除,或者在文本中搜索特定行。