• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rand()に関して)

rand()関数を使用したプログラムで最初の部分が一定の値になる問題

このQ&Aのポイント
  • rand()関数を使用したプログラムで最初の部分が1になる問題が発生しています。
  • rand()関数は乱数を生成するため、毎回異なる値が返されるはずですが、最初の部分が常に1となっています。
  • デバッガを使用して調査した結果、最初の数回のrand()の返り値が似たような数字となっていることがわかりました。

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
noname#212058
回答No.3

srand の引数にシステム時間を使った場合、同じような時間に 実行すると値の変化が少ないために 1回目の rand の値が似た ような値になります。これは rand の仕様というか癖です。 これを防ぐために、最初に rand を何回か呼び出しておく、 というのは、わりと一般的な対策です。

luna3x
質問者

お礼

回答ありがとうございます。 やっぱりそういう現象が一般に起こるんですね。 >>これを防ぐために、最初に rand を何回か呼び出しておく、 >>というのは、わりと一般的な対策です。 そうなんですね。勉強になりました。 1回でなく数回呼び出してから使うようにしたいと思います。 ありがとうございました。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

srand とか rand とかがどのように実装されているかがわからないのであまり一般論としてどうこう言えるものでもないけど, 「最初のうちはどうしても srand で与えた初期値に強く依存する値が出るので何回か rand を呼び出しておいた方がいい」ってのはどこかで見た気がする.

luna3x
質問者

お礼

回答ありがとうございます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

毎回異なるSeedを与えないとダメ

luna3x
質問者

お礼

回答ありがとうございます。

関連するQ&A