Zimpl 中的条件集?
Conditional set in Zimpl?
我想在 Zimpl 中执行此操作,但是在我 运行 zimpl test.zpl:
之后出现以下错误
set A := { 1..6 };
set B := { 1..4 };
set dim[A] := <1> {1}, <2> {1}, <3> {3}, <4> {2}, <5> {1}, <6> {4};
set C := {<i, j> in A*B with j<dim[i]};
错误 800:文件 test.zpl 第 4 行:语法错误,意外的 SETSYM
设置 C := { 在 A*B 中,j < dim[i]};
基本上我想要 A*B:
{<1,1>,<2,1>,<3,1>,<3,2>,<3,3>,<4,1>,<4,2>,<5,1>,<6,1>,<6,2>,<6,3>,<6,4>}
中的这些元素
知道为什么会发生这种情况以及如何解决它吗?
您需要将 dim
定义为参数而不是集合。您的示例应如下所示:
set A := { 1..6 };
set B := { 1..4 };
param dim[A] := <1> 1, <2> 1, <3> 3, <4> 2, <5> 1, <6> 4;
set C := {<i, j> in A*B with j < dim[i]};
do print C;
我想在 Zimpl 中执行此操作,但是在我 运行 zimpl test.zpl:
之后出现以下错误set A := { 1..6 };
set B := { 1..4 };
set dim[A] := <1> {1}, <2> {1}, <3> {3}, <4> {2}, <5> {1}, <6> {4};
set C := {<i, j> in A*B with j<dim[i]};
错误 800:文件 test.zpl 第 4 行:语法错误,意外的 SETSYM
设置 C := { 在 A*B 中,j < dim[i]};
基本上我想要 A*B:
{<1,1>,<2,1>,<3,1>,<3,2>,<3,3>,<4,1>,<4,2>,<5,1>,<6,1>,<6,2>,<6,3>,<6,4>}
知道为什么会发生这种情况以及如何解决它吗?
您需要将 dim
定义为参数而不是集合。您的示例应如下所示:
set A := { 1..6 };
set B := { 1..4 };
param dim[A] := <1> 1, <2> 1, <3> 3, <4> 2, <5> 1, <6> 4;
set C := {<i, j> in A*B with j < dim[i]};
do print C;