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的地方会产生错误?我的代码在上面