问题标签 [set-operations]

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 投票
1 回答
31 浏览

sql - 当返回 2 个输出值时,它应该显示硬线输出值,如果返回 1 个输出值,它应该显示 1 个输出本身

当我对输入参数执行查询时,ABC它返回两个值(Partner, Smith);每当返回这两个值中的两个值时,Smith 将是一个强制值,该值将被返回。

但是每当使用输入参数执行相同的查询时,'xyz'它只返回一个值。

现在我的要求是,每当我执行查询时,如果它返回这两个值中的两个值,则必须在输出中返回 SMITH,如果相同的查询返回一个输出值,那么它应该显示该loutput值本身。

下面的查询满足我的要求的第一部分,但它不满足我的要求的第二部分。1output只要输出值数量为 1,它就会返回“空”值,而不是显示值。

0 投票
2 回答
81 浏览

algorithm - 从至少两个元素相等的列表中查找所有最大的子列表

给定一个对象列表和一个非传递相等函数,当两个对象相等时返回 true,否则返回 false,我需要找到至少两个对象相等的所有最大子列表。例如 -

和,

结果将是:

请注意,isEqual 是不可传递的,即在上述情况下,即使它们属于同一个子列表,它们o1也可能不等于。o4

0 投票
3 回答
1135 浏览

sql - “设置操作”是否具有规定的执行顺序,或者它们是否按评估顺序执行?

集合操作是否有规定的执行顺序(例如,首先是 UNION,然后是 MINUS,然后是 INTERSECT),还是按照脚本和评估的顺序执行?

例如,假设我想要一个 customer_ids 的起始队列,然后删除一些,然后再添加一些。集合运算符是否会在此处执行为 Qry 1 减去 Qry 2 并合并 Qry 3?

0 投票
1 回答
6459 浏览

c - 如何使用内置库在 C 程序中执行 AB 集操作

我是 C 语言的新手。假设我有两个数组ab

我想执行a-b,以便我可以获得 arraya中不存在的所有元素 array b。在 ruby​​ 或 python 中,我可以简单地做a-b并得到结果。这是我尝试过的 c 代码,但我的代码不起作用。我正在寻找一个 C 库,它可以为我在一行中执行此操作。我也找到了这个,但不知道如何实现它。任何形式的帮助表示赞赏。

0 投票
9 回答
1923 浏览

sql - 如何在 PostgreSQL 中有效地设置减去连接表?

我有以下表格:

  • work_units- 自我解释
  • workers- 自我解释
  • skills- 如果你想工作,每个工作单元都需要一些技能。每个工人都精通多种技能。
  • work_units_skills- 连接表
  • workers_skills- 连接表

工作人员可以请求分配给她的下一个适当的空闲最高优先级(无论这意味着什么)工作单元。


目前我有:

不过,这种情况会使查询慢 8-10 倍。

有没有更好的方法来表达 awork_units的技能应该是 s 技能的子集workers或改进当前查询的东西?


更多上下文:

  • skills桌子相当小。
  • 两者work_units并且workers往往具有很少的相关技能。
  • work_units_skills有索引work_unit_id
  • 我尝试将查询workers_skills移至 CTE。这带来了轻微的改善(10-15%),但仍然太慢了。
  • 任何用户都可以拾取没有技能的工作单元。又名空集是每个集合的子集。
0 投票
2 回答
92 浏览

c++ - 为什么类型推导对我的集合交集和集合差异调用不起作用?

我正在尝试编写一个小算法来查找两组的共同和独特部分,并且我想以通用方式编写它,所以我有这个小例子:

我的问题是为什么这个函数无法编译?我尝试了 gcc、clang 和 MSVC,但都失败了。可以在此处查看 Clang 的错误消息:
https ://godbolt.org/g/gFZyzo

非常感谢。

0 投票
2 回答
554 浏览

python - numpy 中的高效 bin 分配

我有一个非常大的 1D python 数组x,其中有些重复的数字以及一些d相同大小的数据。

在我的上下文中,“非常大”是指 10k...100k 条目。其中一些是重复的,因此唯一条目的数量约为 5k...15k。

我想将它们分组到垃圾箱中。这应该通过创建两个对象来完成。一个是矩阵缓冲区,b数据项取自 d。另一个对象是v每个缓冲区列引用的唯一 x 值向量。这是示例:

由于 x 中每个唯一数字的出现次数不同,缓冲区 b 中的一些值是无效的(由大写字母表示X,即“不关心”)。


在 numpy 中很容易推导出 v:

我们甚至得到nb 中每列中有效条目的数量。此外,(np.max(n), v.shape[0])返回需要分配的矩阵 b 的形状。

但是如何有效地生成 b?一个 for 循环可能会有所帮助

此循环遍历 b 的所有列,并idx通过识别 的所有位置来提取索引x == v

但是我不喜欢这个解决方案,因为 for 循环相当慢(比唯一命令长约 50 倍)。我宁愿将操作矢量化。


因此,一种矢量化方法是创建一个索引矩阵,x == v然后nonzero()在其上沿列运行命令。但是,此矩阵需要 150k x 15k 范围内的内存,因此在 32 位系统上大约需要 8GB。

np.unique对我来说, -操作甚至可以有效地返回倒排索引听起来很愚蠢,x = v[inv_indices]但是没有办法为 v 中的每个 bin 获取 v-to-x 分配列表。当函数时,这应该几乎是免费的正在扫描 x。在实现方面,唯一的挑战是生成的索引矩阵的未知大小。


假设 np.unique-command 是用于分箱的方法,则另一种表述这个问题的方法:

给定三个数组x, v, inv_indicesv的唯一元素,x是否x = v[inv_indices]有一种有效的方法来生成索引向量v_to_x[i]all(v[i] == x[v_to_x[i]])以便所有 bin i

我不应该花费比 np.unique-command 本身更多的时间。我很高兴为每个箱子中的物品数量提供一个上限(例如 50 个)。

0 投票
1 回答
778 浏览

mysql - MySQL --- 在同一张表上设置操作 MINUS 和 INTERSECT

我们需要跟踪随时间变化的集合成员。我可以用下面的简单表格来解释我们的问题:

SELECT * 操作的结果如下:

从逻辑上讲,我们可以使用 SET 操作 MINUS 和 INTERSECT 来了解在一段时间内添加、删除或保留了哪些成员。例如,以下“逻辑”集合操作给出了在 20150101 和 20180101 之间添加的成员数:

同样,以下“逻辑”集合操作给出了在 20150101 和 20180101 之间删除的成员数:

以下“逻辑”集合操作给出了 20150101 和 20180101 之间保留的成员数:

在 MySQL 中实现这些逻辑集合操作的最优雅的方式是什么?

0 投票
1 回答
98 浏览

r - 使用 sets 包对 R 中的集合列表进行集合操作

sets在 R 中使用包。现在,我有一个集合列表,我想在列表上执行集合操作而不必循环。就像,我可以set_intersection使用可变数量的参数

但是如果我有一个类似的列表怎么办

如何取中包含的所有集合的交集ls?试图谷歌它,但找不到太多。

0 投票
3 回答
796 浏览

python - 如何获得两个以上列表的对称差异?

我想在我的所有列表之间获取所有专有元素。因此,如果我有 3 个列表,例如:

我的输出应该是:

我尝试对所有列表进行对称差分,例如:

但这并不好。

我也试过:

这与第一种方法的工作原理相同,但它不会产生我想要的东西。

然后我试了一下(set(list1) ^ set(list2)) ^ (set(list2) ^ (set(list3)) ,发现和我第一次试的不太一样。

编辑:

我以 3 个列表为例,但函数采用未定义数量的参数