Eu preciso de um UUID. Seu trabalho é gerar um.
O UUID canônico (identificador universal único) é um número hexadecimal de 32 dígitos com hífens inseridos em determinados pontos. O programa deve gerar 32 dígitos hexadecimais (128 bits), na forma de xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
( 8-4-4-4-12
dígitos), onde x
é um número hexadecimal aleatório. Supondo que o PRNG do seu idioma seja perfeito, todas as saídas válidas devem ter a mesma probabilidade de serem geradas.
TL; DR
Gere 32 dígitos hexadecimais aleatórios nos dígitos do formulário 8-4-4-4-12
. O menor código vence.
EDIT: deve ser hexadecimal. Sempre gerar apenas decimal é inválido. EDIT 2: Sem embutidos. Estes não são GUIDs, apenas dígitos hexadecimais genéricos.
Exemplo de saída:
ab13901d-5e93-1c7d-49c7-f1d67ef09198
7f7314ca-3504-3860-236b-cface7891277
dbf88932-70c7-9ae7-b9a4-f3df1740fc9c
c3f5e449-6d8c-afe3-acc9-47ef50e7e7ae
e9a77b51-6e20-79bd-3ee9-1566a95d9ef7
7b10e43c-3c57-48ed-a72a-f2b838d8374b
As brechas de entrada e padrão não são permitidas.
Isso é código-golfe , então o código mais curto vence. Além disso, fique à vontade para pedir esclarecimentos.
12345678-1234-1234-1234-123456789012
deve ser um UUID válido (ou é necessário um dígito hexadecimal?). Você considera isso uma brecha?
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
onde y
está um deles [89AB]
. No momento deste comentário, nenhuma das respostas (exceto C # usando uma biblioteca interna) tem garantia de produzir um UUID aleatório válido (e, na verdade, provavelmente não produzirá um).