ループの乱数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ピラフ

ループの乱数

#1

投稿記事 by ピラフ » 13年前

ループする度に乱数の値が変わるにはどのようにしたら良いのでしょうか。
srand((unsigned)time(NULL));
をつけても、実行するたびには変わるのですが、
ループだと全て同じ値になってしまいます。
初心者なので、分かりやすく教えていただけるとありがたいです。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: ループの乱数

#2

投稿記事 by みけCAT » 13年前

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');
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: ループの乱数

#3

投稿記事 by beatle » 13年前

srandは最初に1回だけやって、ループ中はrandだけ使うのが普通の使い方だと思うのですが、
ループの内側でsrandをする意図はなんでしょうか?

ピラフ

Re: ループの乱数

#4

投稿記事 by ピラフ » 13年前

恥ずかしながら、今、srandについて調べてみました。
つまり、seedをループの回数によって毎回変えれば、
ループごとに値が変わるということですね??

ピラフ

Re: ループの乱数

#5

投稿記事 by ピラフ » 13年前

うまくいきました。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る