Paritian

Programação

Calculadora da Probabilidade de Colisão de Identificadores (UUID, Tokens)

Probabilidade de dois identificadores gerados ao acaso — UUID, tokens, códigos curtos — saírem iguais, e quantos pode gerar antes de isso se tornar provável.

Resultados

Probabilidade de pelo menos uma colisão 9,40395e-18 %
Identificadores para 50 % de probabilidade de colisão 2,71492e+18
Identificadores para uma probabilidade de um em mil milhões 103 120 434 281 000

O que faz esta ferramenta

É o problema dos aniversários em grande escala: as colisões tornam-se prováveis muito antes de se gastarem os valores possíveis, por volta da raiz quadrada do seu número. Um UUID da versão 4 tem 122 bits aleatórios, por isso seriam precisos cerca de 2,7 × 10¹⁸ para haver metade de probabilidade de um repetido — mas um identificador aleatório de 32 bits chega aos 50 % ao fim de apenas uns 77 000. A aproximação é excelente em qualquer caso realista e supõe um bom gerador aleatório; um gerador fraco ou mal semeado colide muito mais cedo.

Fórmula

p ≈ 1 − e^(−n(n − 1) ÷ (2 × 2^bits)) · 50 %: n ≈ 1.1774 × 2^(bits/2)

Variáveis

SímboloSignificadoUnidade
biBits aleatórios em cada identificadorbits
nIdentificadores gerados—
PProbabilidade de pelo menos uma colisão%
N5Identificadores para 50 % de probabilidade de colisão—
N9Identificadores para uma probabilidade de um em mil milhões—

Exemplo resolvido

  • Bits aleatórios em cada identificador122 bits
  • Identificadores gerados1 000 000 000
  • Probabilidade de pelo menos uma colisão9,40395e-18 %
  • Identificadores para 50 % de probabilidade de colisão2,71492e+18
  • Identificadores para uma probabilidade de um em mil milhões103 120 434 281 000

Limitações

  • O resultado é uma estimativa baseada apenas nos valores que introduziu. Situações reais incluem muitas vezes fatores que esta calculadora desconhece.
  • O cálculo é feito com precisão total e apenas a apresentação é arredondada. Se copiar um valor intermédio e voltar a escrevê-lo, podem surgir pequenas diferenças.