2015-02-24 3 views
-1

Я возился с функцией rand() и задавался вопросом, повторится ли это когда-нибудь? Не уверен, что это действительно хороший вопрос, но я все равно отправлю его, спасибо.Будет ли rand() когда-либо повторяться?

+1

yes it will, its random, ** not unique ** –

+0

http://en.wikipedia.org/wiki/Pseudorandom_number_generator – Stefan

+1

@Dagon Итак, somthing like 'unique_id' всегда будет полностью случайным? –

ответ

1

Да, это повторится. Существует ограничение на количество возможностей. Из docs:

При вызове без дополнительного мин, не более аргументов Rand() возвращает псевдослучайное целое число между 0 и getrandmax(). Если вы хотите, чтобы случайное число от 5 до 15 (включительно), например, используйте rand (5, 15).

Вы можете распечатать getrandmax(), чтобы увидеть, что это число в вашей системе, но его, вероятно, 32767. Так что, если вы звоните rand() 32767 раз, вы обязательно получите повторение. Назовите это меньше, чем это число раз, вы, скорее всего, тоже будете, но для более низкого количества звонков (менее 100 говорят) его менее вероятно, чтобы повторить, хотя это, безусловно, может случиться.

-2

Полезно знать, что ничто не может быть уникальным, UT близко к уникальному. Если вы ищете что-то очень уникальное, вам следует искать на uuid, это стандарт для идентификаторов, который довольно длинный и поэтому также очень уникален.

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