[解決済み] arc4randomとarc4random_uniformの違いは何ですか?重複
質問
との違いについて、古い投稿を見たことがあります。
random
と
arc4random
をObjective-Cで使っていて、ネットで回答を見たのですがよくわからなかったので、どなたかここでわかりやすく説明していただけたらと思います。
を使用するのと何が違うのでしょうか?
arc4random
と
arc4random_uniform
で乱数を発生させるのですか?
解決方法は?
arc4random
は 0 から (2^32)-1 までの整数を返しますが
arc4random_uniform
は0から渡された上限値までの整数を返します。
から
man 3 arc4random
:
arc4random_uniform() は、一様に分布した upper_bound より小さい乱数を返します。arc4random() % upper_bound'' のような構造よりも、arc4random_uniform() が、上限が2乗でない場合に "モジュロバイアス" を回避するために推奨されます。
例えば、0から4までの整数が欲しい場合、以下のようになります。
arc4random() % 5
または
arc4random_uniform(5)
この場合、modulus演算子を使うとmoduloのバイアスがかかるので、arc4random_uniformを使うのがよいでしょう。
モジュロバイアスを理解するために、次のように仮定します。
arc4random
はもっと小さな範囲でした。0から(2^32) -1ではなく、0から(2^4) -1です。 この範囲の各数値に対して% 5を実行すると、0が4回、1、2、3、4がそれぞれ3回となり、0の発生確率がより高くなります。この差は、範囲がもっと大きくなるとあまり意味がなくなりますが、それでもモジュラスを使わないほうがよいでしょう。
関連
-
[解決済み】Objective-C。NULL、nil、@""の違いは何ですか?
-
[解決済み] Objective-CのNSLog関数でNSString型を出力する方法とは?
-
[解決済み] アーキテクチャ i386 のシンボルが見つかりませんでした。
-
[解決済み] objcの "pi "と "M_PI "の違いは何ですか?
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] 0から9までのランダムな整数を生成する
-
[解決済み】NSArrayをアルファベット順に並べるには?
-
[解決済み】SwiftのコードをObjective-Cにインポートするにはどうすればいいですか?
-
[解決済み】Objective-Cでオブジェクトがどのクラスであるかをテストするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcodeのビルド失敗 "アーキテクチャx86_64の未定義シンボル"
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] iPhoneでObjective-Cはガベージコレクタを搭載しているのか?
-
[解決済み] Swiftで乱数を生成する方法とは?
-
[解決済み] ブロック(__block)」というキーワードはどういう意味ですか?
-
[解決済み] ブロック内の変数をブロック外の変数に代入する
-
[解決済み] objectForKeyとvalueForKeyの違い?
-
[解決済み】浮動小数点値の比較はどのくらい危険か?
-
[解決済み】Windows版Objective-C
-
[解決済み] [Solved] UITableViewがReloadDataを完了したことを伝えるには?