web-dev-qa-db-ja.com

iOSで乱数を生成するにはどうすればよいですか?

IOSでObjective-Cを使用して乱数を生成する最良の方法は何ですか?
私が使用する場合(int)((double) Rand() / ((double)(Rand_MAX) + (double) 1) * 5.0) 0から4までの数を生成するには、iPhoneでプログラムを開始するたびに、最初から同じ数を生成します。

22
user21293

非常によく似た質問があります ここではStackOverFlow 。以下は、より優れたソリューションの1つです(シードの必要はありません)。

int r = arc4random() % 5;
71
newtonapple

私が使う

#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))

だからあなたは最小値と最大値を与えることができます

15
Andy Jacobs

乱数ジェネレータに現在の時刻をシードする必要があります。

srand(time(0));
10
Niyaz

どのくらいランダムですか?暗号化に十分なランダム性が必要な場合は、SecRandomCopyBytes()を使用します。

6
user23743

プログラムの開始時にsrand()を呼び出すと、乱数ジェネレータが再シードされます

3
vava

乱数生成のための単純な関数:

int r = arc4random() % 42;  // generate number up to 42 (limit)
2
Himanshu padia