teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足を追加

2020/11/29 04:00

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -5,6 +5,6 @@
5
5
  srand(now);
6
6
  ```
7
7
 
8
- すると、現在時刻が同じ秒数の間は、同じシードが設定されるため、最初の`rand()`で得られる値は同一になります。現実的に、現在のPCの処理速度では1秒間にすべての試行(10000回)が終了してしまうため、すべて同一の`rand()`の返り値でシミュレーションが行なわれ、同一の結果が10000個得られることになります。
8
+ すると、現在時刻が同じ秒数の間は、同じシードが設定されるため、最初の`rand()`で得られる値は同一になります。現実的に、現在のPCの処理速度では1秒間にすべての試行(10000回)が終了してしまうため、(途中で秒数が変わらなければ)すべて同一の`rand()`の返り値でシミュレーションが行なわれ、同一の結果が10000個得られることになります。
9
9
 
10
10
  解決策は、他の方の回答にあるように、シードの設定を`main`の冒頭で行ない、`choose_door`では`rand()`だけを行なうことです。