IOSでObjective-Cを使用して乱数を生成する最良の方法は何ですか?
私が使用する場合(int)((double) Rand() / ((double)(Rand_MAX) + (double) 1) * 5.0)
0から4までの数を生成するには、iPhoneでプログラムを開始するたびに、最初から同じ数を生成します。
非常によく似た質問があります ここではStackOverFlow 。以下は、より優れたソリューションの1つです(シードの必要はありません)。
int r = arc4random() % 5;
私が使う
#define RANDOM_SEED() srandom(time(NULL))
#define RANDOM_INT(__MIN__, __MAX__) ((__MIN__) + random() % ((__MAX__+1) - (__MIN__)))
だからあなたは最小値と最大値を与えることができます
乱数ジェネレータに現在の時刻をシードする必要があります。
srand(time(0));
どのくらいランダムですか?暗号化に十分なランダム性が必要な場合は、SecRandomCopyBytes()を使用します。
プログラムの開始時にsrand()
を呼び出すと、乱数ジェネレータが再シードされます
乱数生成のための単純な関数:
int r = arc4random() % 42; // generate number up to 42 (limit)