回答編集履歴

1

言い回し修正

2022/01/15 23:44

投稿

rubato6809
rubato6809

スコア1380

test CHANGED
@@ -1,7 +1,7 @@
1
1
  それ、私も経験しました。VSなんたらというコンパイラをお使いではありませんか。
2
2
  原因は**ライブラリ関数 rand() の品質が悪い**ことです。
3
3
 
4
- time() が返す値(実行時刻)が近い値だと、一回目の乱数値も近い値になってしまうようなんです。対策は簡単で、**一回目の乱数値を読み捨てる**こと。そのコードだと `` a=rand(); `` をプログラムの処理に使わないようにします。
4
+ time() が返す値(実行時刻)が近い値だと、一回目の乱数値も近い値になってしまうようなんです。対策は簡単で、**一回目の乱数値を読み捨てる**こと。そのコードだと `` a=rand(); `` の、a の値をプログラムの処理に使わないようにします。
5
5
 
6
6
  Cコンパイラを変えれば rand() の実装も変わる可能性があります。いま私の手元の GCC はバージョン7.3.0という、さほど新しいものではありませんが、それでもそのコードを実行させてみると一回目からばらついてくれます。
7
7
  ```