arc4random
シードを必要としないものを使用してみませんか? 次のように使用します。
int r = arc4random();
と比較した記事rand()
です。マニュアルページには、次のarc4random()
ように比較して次のように記載されていrand()
ます。
arc4random() 関数は、8*8 8 ビット S-Box を使用する arc4 暗号で使用されるキー ストリーム ジェネレータを使用します。S-Box は、約 (2 1700) の状態になる可能性があります。arc4random() 関数は、0 から (2 32)-1の範囲の疑似乱数を返すため、rand(3)および random(3) の 2 倍の範囲を持ちます。
範囲内の乱数が必要な場合は、arc4random_uniform()
関数を使用できます。たとえば、0 から 10 までの乱数を生成するには、次のようにします。
int i = arc4random_uniform(11);
マニュアルページからの情報は次のとおりです。
arc4random_uniform(upper_bound) は、upper_bound より小さい一様分布の乱数を返します。arc4random_uniform() は ``arc4random() % upper_bound'' のような構造よりも推奨されます。これは、上限が 2 のべき乗ではない場合の「モジュロ バイアス」を回避するためです。