回答編集履歴
4
わかりやすく追記
test
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
|
4
4
|
|
5
5
|
「C言語での乱数生成で常に同じ値となってしまうケースがある」でググると出てきます。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
何が起きているかというと、srand() は正しく機能していて、 rand() も毎回異なる値を出してはいるが、「7 で割った余りの値」は、シード値の与え方を time() にしている限り 35.5 時間経たないと、変わらない、です。
|
6
10
|
|
7
11
|
|
8
12
|
|
3
誤記を修正
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
シード値が 127773 変わる、つまり 35.5時間後にならないと、
|
48
48
|
|
49
|
-
7 で割った値が変わりません。
|
49
|
+
7 で割った余りの値が変わりません。
|
50
50
|
|
51
51
|
|
52
52
|
|
2
誤記を修正しました
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
そのため、7
|
41
|
+
そのため、x % 7 の値はいつまでたっても変わりません。
|
42
42
|
|
43
43
|
|
44
44
|
|
1
参照先追加
test
CHANGED
@@ -1,4 +1,12 @@
|
|
1
1
|
一部の環境では、rand() % 7 を使わない方がよさそうです。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
「C言語での乱数生成で常に同じ値となってしまうケースがある」でググると出てきます。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
7 のときだけ不具合が出ます。理由はこうです:
|
2
10
|
|
3
11
|
|
4
12
|
|