2014-10-10

Objective-C で乱数 -- arc4random_uniform

iOS の開発してて、ちょいと乱数を使いたくなった。本気な時は、メルセンヌ・ツイスターな乱数発生器を使うのだけど、今回はそこそこテスト的に使うだけで、いずれ消すコードだったので、システムが用意しているものを使った。

C だとシードを与えて rand() 関数を呼ぶのが普通。でも、Objective-C にはお手軽な乱数発生器がある。

arc4random_uniform

arc4random_uniform(N) 関数を呼ぶと、0 から N-1 の一様乱数が得られる。シードの設定は不要。サンプルはこんな感じ。

#include <stdlib.h>
...
...
int r = arc4random_uniform(64);

変数 r には 0 から 63 までの数が入る。手軽に使えるのでオススメ (同様の結果は arc4random() % N でも得られるけど、arc4random_uniform(N) の方が好ましい!)。

No comments:

Post a Comment