кажется, никто не упоминает фактическую математику вероятности ее возникновения.
во-первых, предположим, что мы можем использовать все 128-битное пространство (Guid v4 использует только 122 бита).
мы знаем, что общая вероятность не получить дубликат в n выборка-это:
(1-1/2128)(1-2/2128)...(1-(n-1) / 2128)
потому что 2128 намного больше, чем n, мы можем приблизительно это:
(1-1/2128)n (n-1)/2
и потому что мы можем предположить n намного больше 0, мы можем приблизить это к:
(1-1/2128)n^2/2
теперь мы можем приравнять это к" приемлемой " вероятности, скажем, 1%:
(1-1/2128)n^2/2 = 0,01
который мы решаем для n и
n = sqrt(2 * log 0.01 / log (1-1 / 2128))
какой Вольфрам Альфа становится 5.598318 × 1019
чтобы поместить это число в перспективу, давайте возьмем 10000 машин, каждая из которых имеет 4-ядерный процессор, делает 4 ГГц и тратит 10000 циклов на создание Guid и ничего больше не делает. Это займет ~111 лет, прежде чем они создайте дубликат.