Каков точный алгоритм для встроенной в Objective-C функции rand ()? - PullRequest
0 голосов
/ 18 января 2011

Если у вас есть клиент-серверное приложение, и вы хотите продублировать ту же серию случайных чисел, которую функция rand () создает на клиенте, но на сервере, что такое алгоритм / псевдокод? Клиент и сервер получат одинаковое начальное число (srand () на клиенте).

Спасибо!

Обратите внимание:

  • Разве это не известно? Если да, пожалуйста, укажите
  • Может ли это быть реверс-инжиниринг? Если это так, пожалуйста, напишите, если только лицензионные соглашения не помешают вам сделать это. Другими словами, не делайте ничего противозаконного
  • Меня не интересуют проектные предложения для клиент-серверного приложения
  • Я понимаю, что есть лучшие и более новые способы генерирования рандовых чисел

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Исходный код Apple для Дарвина - это реализация Mac для rand(), которая должна быть такой же, как и в iOS. Здесь также является реализацией random().Оба они, похоже, взяты из FreeBSD.

1 голос
/ 18 января 2011

Большинство компиляторов Си, которые я видел, используют линейные конгруэнтные генераторы случайных чисел для своей функции rand ().Вам не нужно перепроектировать его: это с открытым исходным кодом.

Кстати, если это основа какой-то системы шифрования / безопасности.Это действительно плохая идея.

...