0

情况是:我在游戏中定义了一个集合,例如:

设置 n /n1*n100/;

稍后在代码中,我想找到一种方法来确定元素是否在集合中。例如,我想要一个函数 f,这样

(1) 如果集合中有一个元素,则返回 true(或 '1')。比如,f('n1',n) = true(or '1')

(2) 如果元素不在集合中,则返回 false(或 '0')。比如,f('n111',n) = false(或 '0')

有谁知道是否存在这种功能?另外,如果存在,它是否也适用于多维集?

4

1 回答 1

1

这个问题有点不清楚你想要做什么。话虽这么说,子集似乎可以做你想做的事,例如:

set m /n1*n100/;
set n(m) /n1*n50/;
parameter test(m);
test(m)=0;
test(n)=1;
display test;

这过于明确,例如,您不需要test(m)=0;,因为 gams 默认值为 0。

这样您就可以使用param(m)$test(m) = 3;仅设置测试为阳性的值。当然,使用起来要简单得多param(n) = 3

最后,严格来说,指令:sameas(set1,set2)还是sameas(set1,"n101")做你想做的。

如果没有更明确的问题,就很难超出这一点。

于 2017-11-11T11:24:30.273 回答