Как генерировать случайные числа на iOS? - PullRequest
22 голосов
/ 04 февраля 2009

Каков наилучший способ генерации случайных чисел с помощью Objective-C на iOS?
Если я использую (int)((double) rand() / ((double)(RAND_MAX) + (double) 1) * 5.0) для генерации числа от 0 до 4, каждый раз, когда я запускаю программу на iPhone, она генерирует одни и те же цифры, чтобы начать с.

Ответы [ 6 ]

71 голосов
/ 04 февраля 2009

Существует очень похожий вопрос здесь, на StackOverFlow . Вот одно из лучших решений (нет необходимости в посеве):

int r = arc4random() % 5;
15 голосов
/ 04 февраля 2009

я использую

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

так что вы можете дать мин и макс

10 голосов
/ 04 февраля 2009

Вы должны заполнить генератор случайных чисел текущим временем.

srand(time(0));
6 голосов
/ 04 февраля 2009

Насколько случайный вам нужен? Если вы хотите достаточно случайный для крипто, то используйте SecRandomCopyBytes ().

3 голосов
/ 04 февраля 2009

Позвоните srand() в начале вашей программы, она будет заполнена генератором случайных чисел

2 голосов
/ 11 сентября 2012

Простая функция для генерации случайных чисел:

int r = arc4random() % 42;  // generate number up to 42 (limit)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...