随机生成100个数据,或者选择是否可能

时间:2018-08-26 17:01:32

标签: gams-math

我想测试我的模型,我需要在一些数据中测试它,我想生成数据,实际上我想要从0到10000有125个不同的参数。

例如,在下面,我们有4个不同的参数,从1到300。

 Set I/0*300/;
 Parameter MyParameter;
 MyParameter /4 1,10 1,42 1,87 1/;

我不想手工做。

有没有可以自动生成它的方法?

另一种询问方式:

如何选择集合I中的4个随机元素而不重复?

1 个答案:

答案 0 :(得分:1)

尝试一下:

Set       I     /0*300/
          picks /p1*p4/;
Scalar    pick;
Parameter MyParameter(I);

MyParameter(I) = 0;
loop(picks,
  pick = uniformInt(1, card(I));

* Make sure to not pick the same one twice
  while(sum(I$(pick=ord(I)),MyParameter(I))=1,
    pick = uniformInt(1, card(I))
    Display 'here';
  );

  MyParameter(I)$(pick=ord(I))=1;
);
Display MyParameter;