问题标签 [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.
.net - 集合论和.NET
最近我遇到了一种情况,集合论和集合数学符合我对这封信所做的事情(当然有一种更简单的方法来完成我所需要的 - 即 LINQ - 但当时我没有想到这一点)。但是我不知道任何通用集合库。授予的 IEnumerables 提供了一些集合操作(联合等),但没有像交集或集合比较。谁能指出适合这里的东西?使用泛型类型实现集合数学的东西?
c# - 使用 LINQ 查找对称差异
我有两个系列a
和b
. 我想计算其中一个a
或中的项目集b
,但不是两者(逻辑异或)。使用 LINQ,我可以想出这个:
我想知道是否还有其他更有效或更紧凑的方法来产生两个集合之间的差异。
编辑 1:Jon Skeet 发布了第一个解决方案,该解决方案不依靠HashSet
. 我想知道是否有其他方法可以保留输出的顺序a
和b
输出。
sql - 递归 sql 子集查询,使用 connect by
我有两张看起来有点像这样的桌子
给定两个 DEF_ID,我需要一个函数来检查一个的领土是否是另一个的完整子集。我一直在玩 CONNECT BY 和 INTERSECT,但写得一团糟而不是有用的函数。
我希望会有一个(相对)简单的 SQL 查询有效。
php - 在php中实现集合论操作
如何在纯php中实现集合论运算?
c# - 当我尝试在 Where 子句中使用接口时,为什么 L2E 会阻塞?
我有一个 LINQ to Entities 查询(使用 EF 4),它正在进行一些非常复杂的基于集合的过滤。代码编译得很好,但是当我尝试运行它时,我收到以下错误:
无法创建“ITextEntity”类型的常量值。此上下文仅支持原始类型(“例如 Int32、String 和 Guid”)。
现在是代码。我有一个看起来像这样的界面:
这个想法是这些“文本实体”表示存储属性的查找表Product
。如果 Products 有颜色,那么所有红色的 Products 都会包含一个 TextValue = "Red" 的 Color 实体,并且会有一个 Color 实体用这个接口装饰:
ITextEntities 可能有 1:N 或 N:N 关系回到Product
.
我有一个嵌套集合(实际上是 a ),其中包含实现接口List<IEnumerable<ITextEntity>>
的不同实体集。我想使用这些集合以半包容的方式ITextEntity
过滤一系列s。Product
这是代码:
所以我想做的是:
- 我有一组要过滤的产品。
- 对于实现 的几种类型中的每一种
ITextEntity
,都有一组该类型的实体。- 每个对象 O 都有一组产品 OP。
- 对于 Products 中的每个 Product prod,
对于每个集合 S,
对于 S 中的至少一个 O,
OP 必须包含 prod。如果没有,请从产品中删除 prod。
如您所见,这非常复杂。
我有一种感觉,这是由于 LINQ 无法使用该ITextEntity
类型,而不是我的 set 操作有问题。但是,上述复杂性使得它难以使用,并且难以找到非 LINQ 替代方案。如果我不能使用 LINQ,它会变得非常难看。
我发现一个 MSDN 页面和一个Stack Overflow 线程讨论了类似的异常,但都没有太大帮助。另一个 SO 线程针对我对该Contains
方法的使用,但由于这里的复杂性,我没有太多运气尝试用BuildOrExpression方法替换它。我怀疑 BuildOrExpression 无论如何都会起作用,因为这是 EF 4 并且Contains
应该受到支持。
所以我比较卡在这里。任何人都可以建议吗?
编辑:这个问题在 2010 年 8 月得到回答,但我回来清理标题和描述。
algorithm - 查找重叠集
我正在用 C# 编写一个数字喷泉系统。该系统的一部分为我创建了整数集,我需要找到创建的集的组合,这些组合可以让我留下一组只有一个项目。最快的方法是什么?
我不需要找到所有的组合,只要找到尽可能多的唯一数字就够了。这可以用来创建更有效的算法。
很重要的一点我忘了说:我事先不知道有多少个集合,而是一个一个地添加,并且每次都必须确定是否找到了我需要的每个数字。因此,算法必须是可以在添加新集合时分阶段运行的东西。
NB。C# 中的解决方案获得加分;)
javascript - 我的自定义(Set Theory)Complements() 函数以某种方式损坏了我的数组数据?
我受够了有限的 javascript Array 函数,想编写一些我自己方便的原型函数来执行 Set Theory 函数。
下面是我到目前为止的代码
当我尝试获得域的补集和我新构建的集合时,一切都在工作到最后一点。我预计将得到 [1,2,3,4,5,6,7,8,9,10] 和 [8,9,10,1,2,3] 的补码,这将产生 [4, 5,6,7] 但是当我执行 D.Complement(R) 时,我的 D 变量似乎变成了 [1,2,3]。这似乎发生在我执行的枚举之后。
我认为这可能是因为我在函数中使用了 this.splice 和 arr.splice,当我将变量传递给函数时,它们作为指针传递,这意味着我实际上是在处理实际的内存位置。所以我然后使用 primArray 和 secondArray 创建一个副本来处理......但问题仍然存在
非常感谢
math - 是否有任何软件采用集合构建器符号并返回名册符号?
例如,如果你输入 {x|xεZ,0<x} 给它,它会返回 { 1,2,3,4,5,6,7,8,9,10,11,...}
c# - 使用 Fluent NHibernate 的父子关系?
我想为给定的父母创建一个包含 N 个孩子的级联树/列表,其中孩子也可以成为父母。
给定以下数据结构:
国家类型=1;颜色类型=3;StateType=5
6,7,8 = {Can, US, Mex}
10, 11, 12 = {Red, White, Blue}
20,21,22= {California, Florida, Alberta}
这将如何在 Fluent NHibernate 类中表示?
一些方向将不胜感激。
谢谢。
database - 在具有相同域的大型集合上执行子集测试操作的最快方法
假设我们在某处存储了数万亿个集合。这些集合中的每一个的域都是相同的。它也是有限和离散的。因此,每个集合都可以存储为长度相对较短(例如:1024)的位字段(例如:0000100111...)。也就是说,位域中的位 X 指示项目 X(1024 个可能项目中的)是否包含在给定集合中。
现在,我想设计一种存储结构和一种算法来有效地回答查询:数据存储中的哪些集合将 Y 设置为子集。Set Y 本身并不存在于数据存储中,而是在运行时指定的。
现在解决这个问题的最简单的方法是将集合 Y 的位域与数据存储中的每个集合的位域一个一个地与,选择 AND 结果与 Y 的位域匹配的位域。
我怎样才能加快速度?是否有树结构(索引)或一些智能算法可以让我执行此查询而不必对每个存储集的位域进行 AND 运算?
是否有数据库已经支持对大型集合进行此类操作?