2015-11-24 5 views
0

Мне интересно узнать, какие семена используются для собственных генераторов случайных чисел в общих языках. Прежде всего, это Javascript, Objective C, Swift и Java.Какие семена используются для генераторов случайных чисел на общих языках?

Если вы хотите генерировать уникальные идентификаторы в распределенных системах, вы хотите минимизировать риск столкновения. Одна из стратегий - использовать временную метку UNIX, объединенную со случайным числом. Однако, если временная метка UNIX также используется как единственное семя для генератора случайных чисел, нет смысла добавлять случайное число в метку времени. Если два блока вычислили id одновременно с использованием одного и того же псевдослучайного генератора, они затем вернут одинаковое случайное число. Думаю, использование идентификатора аппаратного обеспечения как части семени будет хорошей стратегией. Но как это реализовано уже на этих языках?

+0

«Android» - это не язык. Вы имеете в виду Android Java? – Pointy

ответ

-1

Это вопрос платформы/рамки, а не вопрос языка.

Я бы предложил создать UUID на всех платформах. UUID разработаны, чтобы быть полностью уникальными. iOS/Mac OS имеет NSUUID. Я не знаю о других платформах.

Смежные вопросы