首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在整数集上应该使用什么类型的约束求解器?

在整数集上应该使用什么类型的约束求解器?
EN

Stack Overflow用户
提问于 2019-07-28 22:11:44
回答 1查看 51关注 0票数 0

我迷失在各种可用约束解算器的海洋中。我正在写一个数据库查询程序。

给定一个等式,其中项是非连续整数的集合,我的目标是简化等式,因为某些项的影响可能在结果集中完全重叠或完全不相交,从而使它们可丢弃。

示例:

({1,2}∪{3,4}) - {4,6}

作为第一步,可以简化为:

({1,2}∪{3,4}) - {4}

由于{6}⊄({1,2}∪{3,4}),等等。

对于这样的问题,可以使用什么类型的求解器?我找到了library(fd_sets),它看起来很合适。然而,ECLiPSE并不是一个容易使用的平台。还有其他的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-29 14:10:40

代码语言:javascript
复制
({1, 2} ∪ {3, 4}) - {4, 6}

不是一个等式(或约束),所以没有什么需要解决的。所以你不需要求解器。它是一个(常量)表达式。我们可以很容易地计算这个表达式并打印结果。例如,在简单的Python中:

代码语言:javascript
复制
print({1,2}.union({3,4}).difference({4,6}))

将会给予

代码语言:javascript
复制
{1, 2, 3}

Python了解集合,因此很容易实现。要自动从({1, 2} ∪ {3, 4}) - {4, 6}转到{1,2}.union({3,4}).difference({4,6}),您需要构建一个解析器。这并不是很难做到(对于一个熟练的程序员来说)。如果您最喜欢的编程语言不知道集合,那么创建数据结构和函数来处理集合并不是太困难。许多语言都支持sets (例如,标准C++库有sets)。

PS。完整: Python还允许插入集运算符。例如:

代码语言:javascript
复制
print({1,2} | {3,4} - {4,6}) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57241715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档