ページ 1 / 1
ループの乱数
Posted: 2013年6月08日(土) 10:43
by ピラフ
ループする度に乱数の値が変わるにはどのようにしたら良いのでしょうか。
srand((unsigned)time(NULL));
をつけても、実行するたびには変わるのですが、
ループだと全て同じ値になってしまいます。
初心者なので、分かりやすく教えていただけるとありがたいです。
Re: ループの乱数
Posted: 2013年6月08日(土) 10:54
by みけCAT
srand((unsigned)time(NULL));だと、1秒経たなければ乱数系列が変わりません。(=同じ乱数が出ます)
こんな感じでしょうか?
コード:
int i;
unsigned int kizyun=(unsigned int)time(NULL);
for(i=0;i<100;i++) {
int j;
srand(kizyun+i);
for(j=0;j<10;j++)printf("%d ",rand());
putchar('\n');
}
Re: ループの乱数
Posted: 2013年6月08日(土) 11:32
by beatle
srandは最初に1回だけやって、ループ中はrandだけ使うのが普通の使い方だと思うのですが、
ループの内側でsrandをする意図はなんでしょうか?
Re: ループの乱数
Posted: 2013年6月08日(土) 11:36
by ピラフ
恥ずかしながら、今、srandについて調べてみました。
つまり、seedをループの回数によって毎回変えれば、
ループごとに値が変わるということですね??
Re: ループの乱数
Posted: 2013年6月08日(土) 11:57
by ピラフ
うまくいきました。
ありがとうございました。