Из стандарта C (а Objective C - это тонкий слой поверх C, так что он все еще должен сохраняться):
Если затем вызывается srand с тем же начальным значением, последовательность псевдослучайные числа должны повторяться.
нет гарантии того, что разные реализации (или даже разные версии одной и той же реализации) будут давать согласованную последовательность на основена семени.Если вы действительно хотите это гарантировать, вы можете кодировать свой собственный линейный конгруэнтный генератор, такой как пример в самом стандарте:
// RAND_MAX assumed to be 32767.
static unsigned long int next = 1;
void srand(unsigned int seed) { next = seed; }
int rand(void) {
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
И, несмотря на то, чтоЧем лучше генераторы, тем более простой линейный конгруэнтный, как правило, более чем достаточно, если только вы не статистик или криптограф.