问题标签 [set-theory]

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 投票
3 回答
2070 浏览

c++ - 集合论数据结构

我来自一个相当实用的编程背景,我不习惯(高效)C++ 数据结构。我需要一个数据结构来保存多个元素,如struct element. 在集合中,字段 id 应该是唯一的。

我想像集合论中那样执行非常快速的集合比较,例如,在比较集合时{x1,x2,x3}{x4,x5}我想确定交集{x5}(或{x2}在这种情况下相等)并从其他集合中减去集合,例如{x1,x2,x3} \ {x5} = {x1,x3}

在 C++ 世界中是否存在......“集合论”数据结构?

0 投票
3 回答
940 浏览

mysql - 是否有一个简单的 SELECT 语句可以创建一个空集?

是否有一种简单易行的方法来创建具有指定列但零行的结果表?在集合论中,这称为空集,但由于关系数据库使用多维集,因此该术语并不完美。我已经尝试了这两个查询,但都提供了一行而不是零行:

  • 选择''作为ID;
  • 选择空的 AS ID;

但我想要的是与此查询相同的结果:

  • SELECT ID FROM sometable WHERE false;

我正在寻找一种更优雅的方式,因为我不想涉及表,因此查询独立于任何数据库方案。此外,通用查询可能会更快一些(对于这样的查询并不重要)。

0 投票
3 回答
3157 浏览

python - 计算两个无序集之间的“距离”

假设两组(无序,无重复元素):

这些集合有两个共同的元素:“z”和“x”,以及一些特定于集合的元素:c、d、e。

你怎么能给每组一个分数,就像字符串距离一样,而

  • 不考虑元素的顺序和
  • 对每个孤立集施加无重复约束

?

正如您在示例中看到的,每组的大小可以不同。

该算法的非关键要求是:

  • 如果可能,插入 > 删除(缺少元素的集合意味着成本高于具有太多元素的集合),或者只是 INS = DEL
  • 交换:0(无成本,因为排序对距离没有影响)

现在我一直在计算一个设定的距离分数:

你会如何建议解决这个问题或改进我的解决方案?

有没有允许指定成本的算法?


现在我要为集合修改定义一个简单的代数:

我怎样才能规范这个值和反对什么?

0 投票
2 回答
30423 浏览

java - 如何实现空集-∅?

0 投票
5 回答
1260 浏览

c# - 如何实现无限集类?

我正在为离散数学设计一个类库,但我想不出一种方法来实现无限集

到目前为止我所拥有的是:我有一个抽象基类 Set,它实现了 ISet 接口。对于有限集,我派生了一个类 FiniteSet,它实现了每个集合方法。然后我可以像这样使用它:

现在我想代表一个无限集。我的想法是从集合 InfiniteSet 派生另一个抽象类,然后使用该库的开发人员必须从 InfiniteSet 派生来实现自己的类。我会提供常用的集合,例如 N、Z、Q 和 R。

但我不知道如何实现像 Subset 和 GetEnumerator 这样的方法——我什至开始认为这是不可能的。您如何以实用的方式枚举一个无限集,以便您可以将它与另一个无限集相交/联合?如何在代码中检查 N 是 R 的子集?至于基数问题。嗯,这可能是一个单独的问题。

所有这一切使我得出结论,我实现无限集的想法可能是错误的方法。我非常感谢您的意见:)。

编辑:为了清楚起见,我还想代表不可数的无限集。

Edit2:我认为重要的是要记住最终目标是实现 ISet,这意味着任何解决方案都必须提供(应该)实现所有ISet 方法的方法,其中最有问题的是枚举方法和 IsSubsetOf 方法.

0 投票
2 回答
6715 浏览

set - 幂集与集合的笛卡尔积

如何明确地写出一个幂集与另一个集的笛卡尔积。

例如:P({a,b})x{a,b}

现在 P({a,b}) = {{},{a},{b},{a,b}}

所以我需要知道 {{},{a},{b},{a,b}}x{a,b}

0 投票
5 回答
102331 浏览

mysql - sql连接为维恩图

我在理解 sql 中的连接时遇到了麻烦,并且发现了这张我认为可能对我有帮助的图片。问题是我不完全理解它。例如,图像右上角的连接,它将整个 B 圆圈涂成红色,但仅与 A 重叠。图像使圆圈 B 看起来像是 sql 语句的主要焦点,但 sql 语句本身,从 A 开始(从 A 中选择,加入 B),给我传达了相反的印象,即 A 将是 sql 语句的焦点。

同样,下图只包含来自 B 圈的数据,那么为什么 A 包含在 join 语句中呢?

问题:从右上角顺时针工作并在中心完成,有人可以提供有关每个sql图像表示的更多信息,解释

a)为什么在每种情况下都需要连接(例如,特别是在没有从 A 或 B 获取数据的情况下,即只有 A 或 B 而不是两者都是彩色的)

b) 以及任何其他可以阐明为什么图像是 sql 的良好表示的细节

sql连接图

0 投票
1 回答
1394 浏览

c++ - C++ 递归联合、交集和差异

这是一个家庭作业,我真的不知道该怎么做。我通常会创建 v3 = v1,然后通过 v2、通过 i 递增,并检查 v2 的元素是否在 v3 中。如果没有,我会将它们添加到 v3。但是我无法在方法之外创建 v3,如果我尝试在方法内部创建它,它只会自行重置。任何人都可以帮助我吗?

这是迄今为止我为它们提供的代码及其包装函数(它只是骨架):

0 投票
1 回答
517 浏览

vba - 将一个集合分成两个不相交的子集(所有组合)

定义集合A={1,2}。如何生成所有可能的组合,这些组合A可以分成两个不相交的子集BC?对于n=2可能的组合是

我如何将其推广到 any n?最好使用 VBA(或任何其他语言都可以)。

谢谢你。

0 投票
5 回答
373 浏览

arrays - 这个集合/数组操作有名字吗?

给定输入数组

和一个“加入”功能(a,b) => (a+b)

我的代码返回以下数组数组,其中包含通过将连接函数应用于各种元素对同时保持顺序而获得的每个可能的变化:

在视觉上,我想要做的是:

有序分区图

该代码有效,但我不知道该怎么称呼它 - 如果存在这样的名称,我想使用其他熟悉此操作的开发人员会理解的名称。它不是一个幂集,但它是类似的……这个特定的集合/数组操作有名字吗?

编辑:好的。它们不是排列;排列都将是不同顺序的 5 元素数组[[a,b,c,d,e], [e,d,c,b,a], [a,d,b,c,e], ...]

它们不是partitions,因为任何子集只能包含输入的相邻元素。- 换句话说,分区将允许这样做:

描述非相邻元素分区的图表

(这可能源于没有有序集合概念的纯集合论。)

它们不是组合,因为输出的每个元素只使用输入集的每个成员一次。

我认为myArray.OrderedPartitions((a,b) => (a+b))可能是一个适当简洁和解释性的。