乱数取得
2008年05月13日 – 00:21MINからMAXまでの間の乱数を返すユーザ関数
flug_fresh:直前と同じ結果が出た場合に再度ランダマイズするかどうかのフラグ
TRUE:再度乱数取得を行う / FALSE:行わない
// Return Random Number :: from min to max :: 2009-03-10
integer uuRandom_last_num;
integer uuRandom_new_num;
integer uuRandom(integer MIN, integer MAX, integer flug_fresh){
if (flug_fresh && MIN != MAX){
do{
uuRandom_new_num = MIN + (integer)llFrand(MAX - MIN + 1);
}while (uuRandom_new_num == uuRandom_last_num);
}else{
uuRandom_new_num = MIN + (integer)llFrand(MAX - MIN + 1);
}
uuRandom_last_num = uuRandom_new_num;
return uuRandom_new_num;
}
integer uuRandom_last_num;
integer uuRandom_new_num;
integer uuRandom(integer MIN, integer MAX, integer flug_fresh){
if (flug_fresh && MIN != MAX){
do{
uuRandom_new_num = MIN + (integer)llFrand(MAX - MIN + 1);
}while (uuRandom_new_num == uuRandom_last_num);
}else{
uuRandom_new_num = MIN + (integer)llFrand(MAX - MIN + 1);
}
uuRandom_last_num = uuRandom_new_num;
return uuRandom_new_num;
}
[追記 2009-03-10]do-whileで書き直しました。



