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

2016年6月29日 0 投稿者: khws4v1

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

 

しかしっ!

 

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

こうすることで

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

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

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