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

回答編集履歴

5

文言修正

2020/07/15 16:32

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  出題通りのコードになっていません。
2
2
  - `sum`の加算タイミングがおかしい。
3
+ 試行回数を求める前に加算しています。最後のループ時の試行回数が加算されません。
3
4
  - ループごとに`N`,`Flags`を0クリアしていない。
4
5
  2回目以降は1度しか振らず、`N`は`前ループの値+1`になる。
5
6
  初回ループで10回の試行ですべての目が出たとしても、それだけで`sum`は`1793293664`(`sum`加算タイミング修正前は`1792293655`)になります。

4

整数演算指摘追加

2020/07/15 16:32

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -5,7 +5,8 @@
5
5
  初回ループで10回の試行ですべての目が出たとしても、それだけで`sum`は`1793293664`(`sum`加算タイミング修正前は`1792293655`)になります。
6
6
  - ループごとに`srand`で初期化している。
7
7
  1秒以内にループが終わった場合次のループで使われる乱数の値が前のループと同じになる。
8
-
8
+ - `avg`の計算が整数演算になっている。
9
+ 小数点以下が求まりません。
9
10
  ```C
10
11
  srand((unsigned)time(NULL));
11
12
  for (i = 0; i < 1000000; i++) {
@@ -17,10 +18,10 @@
17
18
  } while (Flags != 0x3FF);
18
19
  sum += N;
19
20
  }
20
- avg = sum / 1000000;
21
+ avg = sum / 1000000.0;
21
22
  ```
22
23
  結果
23
24
  ```
24
25
  sum = 29282182
25
- avg = 29.00
26
+ avg = 29.28
26
27
  ```

3

文言修正

2020/07/15 16:14

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  出題通りのコードになっていません。
2
+ - `sum`の加算タイミングがおかしい。
2
3
  - ループごとに`N`,`Flags`を0クリアしていない。
3
4
  2回目以降は1度しか振らず、`N`は`前ループの値+1`になる。
4
- 初回ループで10回の試行ですべての目が出たとして、それだけで`sum=1793293664`になります。
5
+ 初回ループで10回の試行ですべての目が出たとして、それだけで`sum`は`1793293664`(`sum`加算タイミング修正前は`1792293655`)になります。
5
- - `sum`の加算タイミングがおかしい。
6
6
  - ループごとに`srand`で初期化している。
7
7
  1秒以内にループが終わった場合次のループで使われる乱数の値が前のループと同じになる。
8
8
 

2

文言修正

2020/07/15 16:10

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  出題通りのコードになっていません。
2
2
  - ループごとに`N`,`Flags`を0クリアしていない。
3
3
  2回目以降は1度しか振らず、`N`は`前ループの値+1`になる。
4
+ 初回ループで10回の試行ですべての目が出たとして、それだけで`sum=1793293664`になります。
4
5
  - `sum`の加算タイミングがおかしい。
5
6
  - ループごとに`srand`で初期化している。
6
7
  1秒以内にループが終わった場合次のループで使われる乱数の値が前のループと同じになる。

1

文言修正

2020/07/15 16:07

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  出題通りのコードになっていません。
2
2
  - ループごとに`N`,`Flags`を0クリアしていない。
3
+ 2回目以降は1度しか振らず、`N`は`前ループの値+1`になる。
3
4
  - `sum`の加算タイミングがおかしい。
4
5
  - ループごとに`srand`で初期化している。
5
6
  1秒以内にループが終わった場合次のループで使われる乱数の値が前のループと同じになる。