Quelle fonction JMP peut générer un entier non répétitif entre deux valeurs ?J'ai essayé "Random Integer()", mais cela produit des entiers en double. Merci!
Tableau de donnéesRe : Quelle fonction JMP peut générer un entier non répétitif entre deux valeurs ?Et une autre manière :
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 ) );Re : Quelle fonction JMP peut générer un entier non répétitif entre deux valeurs ?@lwx228 ,
Ceci est juste une méthode alternative reposant sur la fonction 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));
Je me sentais comme un fainéant, compte tenu de la fonction élégante de Jim. [grin] Le script ci-joint inclut une fonction qui utilise cette méthode range/shuffle/subset.Jim, @txnelson , votre nom de fonction était parfait, alors je l'ai utilisé.
' Imitation est la forme la plus sincère de flatterie que la médiocrité peut payer à la grandeur. -Oscar Wilde
Re : Quelle fonction JMP peut générer un entier non répétitif entre deux valeurs ?Je ne crois pas qu'il existe une telle fonction dans JMP, mais il est très simple d'en créer une
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)