Random 十进制数
我有以下代码:Random 十进制数,random,long-integer,gams-math,Random,Long Integer,Gams Math,我有以下代码: loop (d, rnd(d)=uniformInt(1,nd) ); 我将使用整数rnd(d)作为另一组s(I)的索引。但是,例如当rnd(d)=34.000时,它是整数,但是s(34.000)没有有效的索引,因为,34.000不是34!!GAMS显示一条错误消息。我是有序集吗?如果是,您可以使用以下内容: loop(d, s(i)$(ord(i)=rnd(d)) = ...; ) 我不知道@Lutz解决方案是否适合你。如果没有,您可以尝试以下操作: 首先,不需要在
loop (d,
rnd(d)=uniformInt(1,nd)
);
我将使用整数
rnd(d)
作为另一组s(I)
的索引。但是,例如当rnd(d)=34.000时,它是整数,但是s(34.000)
没有有效的索引,因为,34.000
不是34
!!GAMS显示一条错误消息。我是有序集吗?如果是,您可以使用以下内容:
loop(d,
s(i)$(ord(i)=rnd(d)) = ...;
)
我不知道@Lutz解决方案是否适合你。如果没有,您可以尝试以下操作:
首先,不需要在集合d上循环,只需一个简单的:
rnd(d) = uniformInt(1,nd);
就够了。
下一行可以是:
loop(d,
s(i)$(i.val = ord(d)) = . . .;
);
如果您仍然有问题,那么使用@Lutz suggestion只需将“*1.000”附加到“ord(i)”和/或“rnd(d)”,无论哪一个会给您带来问题。您能显示您的代码吗?您尝试使用rnd的地方会产生错误?我的代码在上面