21/05/21 17:24:43.18 qriMwFf7.net
なるほど。
質問者は、だから>>228でも快い返事をしてくれなかったのか。
彼は例えば、以下の様に書いていたようだね:
(1)
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100-1;
printf( "r=%d, ", r );
}
本来は、こう書くか、
(2)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r=rand()%100-1;
printf( "r=%d, ", r );
}
こう書く:
(3)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 100.0 );
printf( "r=%d, ", r );
}
この中で(1)はダメ。(2)も余り良くない。(3)はplain Cでの簡単な書き方では
標準。しかし、わずかに均等確率からはズれる。