疑似乱数2
■ このスレッドは過去ログ倉庫に格納されています
0291,,・´∀`・,,)っ-○○○
2010/11/06(土) 23:03:00要件:
1.genrand_int31()の剰余をとる
2.分布を完全に均等化するために剰余をとる前の値がNの倍数通りになるように再実行する
んで、
#define INT31_MAX 0x7FFFFFFF // ←ここ重要
int value;
do { value = genrand_int31();
} while (value >= INT31_MAX - (INT31_MAX % n));
value %= n;
MTは下位ビットをとっても安全な疑似乱数だからどっちでもいい
■ このスレッドは過去ログ倉庫に格納されています