Как генерировать случайные числа на iPhone?

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

6 ответов


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

int r = arc4random() % 5;

Я использую

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

таким образом, вы можете дать min и max


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

srand(time(0));

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


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


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

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