哪個 JMP 函數可以生成兩個值之間的非重複整數?我試過“Random Integer()”,但它會產生重複的整數。 謝謝!
數據表回复:哪個 JMP 函數可以生成兩個值之間的非重複整數?另一種方式:
Names Default to Here( 1 );
random order = Function( { min, max },
min = Floor( min ); max = Floor( max );
Index( min, max )[Rank( J( max-min+1, 1, Random Uniform() ) )];
);
Show( random order( 5, 10 ) );回复:哪個 JMP 函數可以生成兩個值之間的非重複整數?@lwx228 ,
這只是依賴於 JMP 函數 Random Shuffle 的替代方法
Names Default to Here(1);
ibeg = 257;
iend = 500;
random_all = As List( Random Shuffle( Transpose(ibeg::iend) ) );
//suppose you only want 100
vals = random_all[1::100];
show(random_all, nitems(random_all), iend-ibeg+1 );
show(vals, nitems(vals));
考慮到吉姆優雅的功能,我覺得自己像個懶鬼。 [咧嘴笑] 附加腳本包含一個使用此範圍/隨機/子集方法的函數。吉姆, @txnelson ,您的函數名稱很準確,所以我使用了它。
'模仿是最真誠的形式奉承平庸可以成就偉大。 - 奧斯卡·王爾德
回复:哪個 JMP 函數可以生成兩個值之間的非重複整數?我不相信 JMP 中有這樣的功能,但創建一個非常簡單
Names Default To Here( 1 );
uniqueRandomInteger = Function( {n, min, max},
{defaultlocal},
hold = [];
For( i = 1, i <= n, i++,
val = Random Integer( min, max );
While( N Rows( Loc( hold, val ) ) > 0,
val = Random Integer( min, max )
);
hold = hold |/ Matrix( val );
);
hold;
);
x=uniqueRandomInteger(10,100,200)