Я задал этот вопрос Сгенерируйте 100 данных случайным образом или выберите, если это возможно несколько дней назад. Теперь, когда я хочу выбрать 10 случайных чисел из набора i /1 * 300/. я использую этот код:
Set I /0*300/
picks /p1*p10/;
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;
Я хочу запустить этот код несколько раз, и я хочу выбрать 10 случайных чисел в первый раз. 20 выборов во второй раз, 30 выборов в третий раз, ..., 100 выборов в 10-й раз.
Кроме того, мне нужно каждый раз выбирать новые числа, я имею в виду, что числа, выбранные во второй раз, должны отличаться от чисел, выбранных в первый раз.
но uniformInt Каждый раз выбирает повторяющиеся числа. Например, результаты для выбора 10 и 20 следующие:
* for picks /p1*p10/;
21 1.000, 52 1.000, 68 1.000, 88 1.000, 91
1.000, 106 1.000
151 1.000, 166 1.000, 254 1.000, 258 1.000
И результат для 20 выбранных:
* for picks /p1*p20/;
21 1.000, 40 1.000, 49 1.000, 52 1.000, 68
1.000, 76 1.000
88 1.000, 91 1.000, 106 1.000, 132 1.000, 151
1.000, 166 1.000
175 1.000, 193 1.000, 202 1.000, 230 1.000, 254
1.000, 258 1.000
299 1.000
21,52,68,88,91,106,151,166,254,258 повторяются во второй раз.
Что делать, чтобы каждый раз не повторялись номера? Почему эта функция не выдает разные числа?