srand()は1回だけでいいダルォォン?

C言語のrand()srand()でシード値を与えないと、同じ乱数が出てくる。
そこでsrand((unsigned)time(NULL));で現在時刻をシード値として与える。

 

しかしっ!

 

このように何度もsrand()するとかやりだしたぞこいつ・・・。
一体何がしたいんだ!

こうすることで

  • シード値毎回セット
  • シード値が1秒に1回しか変わらない
  • よってrand()の出力も1秒に1回しか変わらない

という事態が発生し、「あれ〜?なぜか値があまり変わらないな〜」などと嘆くようになったのだった。
—完—

というか乱数発生の仕組みを軽く触れたことがあったのにどうしてこうなった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です