Почему UUIDgenerate производит ценности так близко друг к другу? - PullRequest
0 голосов
/ 13 сентября 2018

Пакет uuid предоставляет метод для генерации случайных UUID. Если вы генерируете UUID по одному, это будет похоже на то, что вы ожидаете. Однако, если вы создадите вектор UUID последовательно, он даст очень похожие результаты, часто отличающиеся только одним символом.

Вот пример кода:

t2=rep(NA,10)
for(i in 1:length(t2)){
    t2[i]=UUIDgenerate(FALSE) %>% str_replace_all("-", "") 
}

Я просто запустил это и получил следующие значения:

95d88148b78f11e890636390504048e3
95d88149b78f11e890636390504048e3
95d8814ab78f11e890636390504048e3
95d8814bb78f11e890636390504048e3
95d8814cb78f11e890636390504048e3
95d8814db78f11e890636390504048e3
95d8814eb78f11e890636390504048e3
95d8814fb78f11e890636390504048e3
95d88150b78f11e890636390504048e3
95d88151b78f11e890636390504048e3

Если вы посмотрите, например, последние две строки, они абсолютно одинаковы, за исключением того, что в одной цифре 1 вместо 0. Так происходит каждый раз, когда я запускаю его.

Честно говоря, мой разум взорван. Как это может быть? Это кажется значительно менее случайным, чем если бы вы использовали встроенные случайные функции R. Не означает ли это, что полученные UUID имеют значительную вероятность столкновения? Я сделал что-то неправильно? Я что-то не так понял? Это ошибка?

...