Я задал этот вопрос Произведите 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-й.
Кроме того, мне нужно каждый раз выбирать новые номера,
Я имею в виду, что числа, выбранные во второй раз, должны отличаться от номеров, выбранных в первый раз.
ноiformInt Каждый раз выбирает повторяющиеся числа.
Например, результаты для выбора 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 повторяются во второй раз.
Что я должен делать, чтобы избежать дублирования номеров каждый раз? Почему эта функция не производит разные числа?