しかし欠点もあり、以下がそうです。
実はarc4random()はランダム性に少しバイアスが掛かっています。arc4random()は0から2^32-1の値を返すため、それの法をとる際に微妙にランダム性が崩れるのです(modulo bias:0から10の値をとるランダム値のモジュロ7の法をとると、0-3の出現割合は4-6の二倍になりますね)。ただし、MAX_NUMが2の累乗であれば完全にランダムとなります。
Objective-Cの乱数作成はarc4random_uniform - だいたい47度
これを補ってくれるのが arc4random_uniform() です。
arc4random_uniform()の使い方
使い方はarc4random()と似ています。// 0から9の乱数を生成
int randInt = arc4random_uniform(10);
0 件のコメント:
コメントを投稿