首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义并集、交集、对称差?

如何定义并集、交集、对称差?
EN

Stack Overflow用户
提问于 2018-07-18 18:56:17
回答 1查看 281关注 0票数 2

我有集合i,j和来自i和j的子集k。我想要有并集、交集和对称差。

我的电视机很大。但为了澄清这个问题,让我们I=1*3,j=6*12。

代码语言:javascript
运行
复制
 Set i /1*3/
        j/6*12/
        K(i ,j) 
         1.(6,9,11)
         2.(7,11)
         3.(8,9,10,12) ;

我想在k(i,j)上求并、交和对称差。

例如k(1,j)和k(2,j)。交集是'11‘,对称差是'6,7,9’,并集是'6,7,9,11‘

我必须计算k( i,j)中所有可能的组合的交集、并集和对称差,我如何在GAMS中做到这一点?我该如何对其进行编码?

我知道对于集合i和j上的联合,我可以写

代码语言:javascript
运行
复制
  Set  i-u-j /#i,#j/;   or /i+j/

但在这种情况下,k(i,j)是二维子集,我不知道如何得到并集?如何获得交集或对称差分?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-23 15:29:19

试试这个:

代码语言:javascript
运行
复制
Set i /1*3/
    j/6*12/
    K(i ,j) /
         1.(6,9,11)
         2.(7,11)
         3.(8,9,10,12) / ;

Alias (i,ia);

Set intersect(i,ia,j)
    symDiff(i,ia,j)
    union(i,ia,j);

intersect(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) and k(ia,j);
symDiff(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) xor k(ia,j);
union(i,ia,j)$(ord(i)<ord(ia)) = k(i,j) or k(ia,j);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51400240

复制
相关文章

相似问题

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