回答編集履歴

1

m

2018/12/01 10:25

投稿

yumetodo
yumetodo

スコア5850

test CHANGED
@@ -1 +1,17 @@
1
- そもそもrandは品質に保証がなく、実際一部の処理系では利用するべきではありません。
1
+ そもそもrandは品質に保証がなく、実際一部の処理系ではひどい品質であり、利用するべきではありません。mt法などを利用するかC++標準の`std::mt19937`を利用するべきです。そして実際C++標準規格ではC標準規格が提供するrand()を非推奨しています。
2
+
3
+
4
+
5
+ また剰余(`%`)を用いた範囲調整は品質をさらに悪化させるので
6
+
7
+
8
+
9
+ ```
10
+
11
+ (int)(((double)rand() / ((double)RAND_MAX + 1)) * N)
12
+
13
+ ```
14
+
15
+
16
+
17
+ のようにしてください。