问题标签 [superset]

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 回答
481 浏览

sql - SQL: 查找所有课程,其中注册学生的集合是已注册某个课程 C 的学生的超集

我正在考虑学生数据库中的 sql 查询:student(sid,sname),course(cid,cname),enrol(sid,cid)

找出所有课程,其中注册学生的集合是已注册某个课程的学生的超集 C

这个查询将如何编写?

0 投票
2 回答
1474 浏览

list - Prolog,删除列表列表中的超集

假设我有以下列表:

目标是删除列表中作为列表中列表超集的每个列表。

包含列表的列表始终具有以下属性:

  • 列表中的列表按长度排序
  • 列表中的每个列表都已排序

我最初的想法是从列表中的第一个列表开始,然后遍历所有其他列表并删除作为超集的列表。接下来,我将查看第二个列表,等等。

删除列表 [a] 的所有超集后,它应该如下所示:

接下来应该删除 [b,c] 的超集:

最后是 [b,d] 的超集:

上面的行应该是结果。

我已经创建了一个类似于成员谓词的谓词,但不是采用单个元素并将其与列表进行比较,而是采用整个列表并将其与列表进行比较:

这仅适用于列表。

但在这之后,我有点迷路了。

我尝试了以下应该删除单个集合的超集,但它不起作用:

所以我想知道是否有人可以为我指出正确的方向,从列表中删除所有超集,或者甚至给出正确的谓词。

0 投票
2 回答
175 浏览

python - Python调用返回布尔值的方法,如`issuperset`,对内存友好吗?

我写了一些代码,假设对超集的检查将是内存友好的并导致更少的碎片,因为它返回一个布尔值(a_list总是不大于 2 个非常小的字符串元素,与fooand的顺序相同bar)。例如

而且我认为上面比下面更可取,如果只是为了可读性,而且因为我认为最好不要创建很多不必要的列表,并且我希望它不会创建任何其他对象,因为它只返回一个布尔值。

但是,我不清楚 Python 的所有内部工作原理。因此,我一直在阅读CPython 源代码(下面的摘录),如果它还不是一个集合,则似乎检查超集会创建另一个的集合对象:

所以看起来我在给定一个列表作为另一个列表时创建了一个新集合,所以我的假设是错误的,即使它更具可读性。我认为第二个代码实际上可能更快,至少在我使用 Python 2.6 进行测试时是这样。所以我的问题是,就内存性能和碎片而言,第一个代码比第二个代码更可取吗?

有没有我还没有考虑过的严格主导的方法?


编辑:这回答了有关性能的相关问题:

输出:

0 投票
2 回答
202 浏览

python - 计算导致集合的给定大小的子集的组合

我想获得给定长度的所有可能子集,这些子集会导致真实集合。所以对于集合 [a,b,c] 和子集大小 1 & 2 我想计算:

我一直在尝试使用算法中的代码来计算 R 中一组的幂集(所有可能的子集),但该算法将生成所有子集,而不仅仅是那些导致集合的子集。

我正在尝试解决这个问题,尺寸约为 30。我想计算每个子集组合的分数,只保留最好的,这样我希望记忆没有困难。选择的编程语言是python。

0 投票
1 回答
358 浏览

c++ - 使用 stl 给出重复子集的超集算法

我正在尝试查找给定向量的超集。我通过递归来做到这一点。迭代地,我删除一个值,然后用新集合调用函数。我得到了所有的集合,但它们是重复的。例如,对于 5 个元素,应该有 32 到 31 个子集,而我得到大约 206 个子集。这是我的代码

0 投票
1 回答
79 浏览

matlab - Matlab中删除超集的问题

我有一组数据,其中包含我想删除存在子集的超集的集合,如下所示:

结果如下:

正如输出所示,仍然有应该删除的超集,即a{2}因为a{5}contains11是它的子集,a{4}应该删除因为a{5}contains11a{6}contains16以及a{7}应该删除,因为a{8}contains subset 14

预期输出是

任何人都可以帮助如何修复此代码,以便我可以获得准确的结果集。谢谢

0 投票
1 回答
83 浏览

matlab - 如何用matlab中的子集替换超集?

这是在 Matlab 中删除超集的问题的后续问题。在上一个问题中,我正在删除超集并保留我有工作答案的子集现在我想用子集替换超集而不是删除它们,例如我有一个数据集如下:

当我运行上面的代码时,输​​出如下:

我想做的是用子集替换超集而不是删除它们:

预期输出应如下所示:

0 投票
2 回答
3105 浏览

python - 从 Python 列表中删除列表子集的最快方法

假设我有一个如下列表(实际列表要长得多):

在这种情况下,列表中的所有项目['banana', 'pear'],['apple', 'pear']['apple', 'pear', 'banana']都包含在列表中['apple', 'pear', 'banana', 'watermelon'](项目的顺序无关紧要),所以我想删除['banana', 'pear'], ['apple', 'pear'], 和['apple', 'pear', 'banana']因为它们是 的子集['apple', 'pear', 'banana', 'watermelon']

我目前的解决方案如下所示。我首先使用ifilterandimap为每个列表可能具有的超集创建一个生成器。然后对于那些确实有超集的情况,我使用compressimap删除它们。

我想知道是否有更有效的方法来做到这一点?

0 投票
3 回答
1197 浏览

javascript - 如何检查子集数组是否包含超集数组之一?

我想创建一个函数来检查我的子集是否包含我在 Javascript 中的一个超集。它应该返回真或假。

有 7 个固定超集,每个超集是一个固定的 3 个整数的数组,见下图:

该子集也是一个数组,但具有随机长度并且是随机顺序的。例如:

或者

对于这两个子集,函数应返回 true(子集 1 包含 1、2 和 3)(子集 2 包含 3、5 和 7)

但这应该返回 false,因为它不包含任何超集:

该功能应该是这样的:

对于想了解我使用代码的项目的人,这是荷兰版的井字游戏。

0 投票
1 回答
82 浏览

java - 如何从已排序的数组中删除重复的元素

正如您在此处看到的,这是一个按升序对元素进行排序并删除任何重复元素的程序。这里的问题在于“删除”片段。它适用于 5 个元素的数组,其中值 (1,3,3,5,5) 的顺序是任意的,因为“排序”片段会处理这一点。但是,如果您采用序列 say(1,1,1,2,1,3),则删除不会完全发生。有人可以告诉我哪里出错了吗?

}