*

objective-cでランダムな値を作る。

   

PAK12_10many500

プログラムを使っていると、ランダム値、乱数を使いたい事があると思います。

objective-cで、乱数を使うにはどうしたらいいのか。

今回はその方法をご紹介します。

ランダム値を作る関数はいくつもある。

答えはこちらのサイト様に書かれております。

Objective-Cの乱数作成はarc4random_uniform

すべては上記サイト様をみていただければ解決なのですが、自分なりにも使い方を復習がてらご紹介です。

rand()

まずはrand()。

少しでもプログラムをかじった方は乱数と聞いて、すぐにrandam()みたいなメソッドを思い浮かべるかもしれませんが、
これもそれに漏れない、オーソドックスなメソッドですね。

    //1から3までの乱数を取得
    int i = rand()%3 + 1;
    NSLog(@"%d",i);

このメソッドが一番単純ですが、初期化が必要だそうです。

arc4random()

続いてarc4random()。

    //60000までの乱数を取得
    int i4 = (int)arc4random()%60000;
    NSLog(@"%d",i4);

objective-c独自の乱数取得メソッドですね。初期化が不要なので、rand()よりも便利です。

ただし、ランダムロジックに若干バイアスがかかっているとのこと。何回も続けていると偏りが出てくるそうですね。(試してみましたが、私にはさっぱり。。。)

arc4random_uniform()

最後にarc4random_uniform()です。

    int i5 = (int)arc4random_uniform(100);
    NSLog(@"%d",i5);

arc4random()のバイアスを修正したバージョンですね。

今のアプリはarc4random_uniform()を使おう!

arc4random_uniform()は、ios4.3以上ということですので、今のアプリで乱数値を使う場合は、これ一択ではないでしょうか。

乱数を何に用いるか、私にはそれが問題ですね。。。

 - objective-c, アプリ