Мені потрібен UUID. Ваше завдання - створити один.
Канонічний UUID (Універсально унікальний ідентифікатор) - це 32-значне шістнадцяткове число з дефісами, вставленими в певних точках. Програма повинна виводити 32 шістнадцяткових цифр (128 біт) у вигляді xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
( 8-4-4-4-12
цифр), де x
є випадкове шістнадцяткове число. Якщо припустити, що PRNG вашої мови є ідеальним, всі дійсні результати повинні мати однакову ймовірність створення.
TL; DR
Створіть 32 випадкові шістнадцяткові цифри у вигляді 8-4-4-4-12
цифр. Найкоротший код виграє.
EDIT: Повинно бути шістнадцятковим. Завжди генерування лише десятків недійсне. EDIT 2: Немає вбудованих модулів. Це не GUID, а просто загальні шістнадцяткові цифри.
Приклад виводу:
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
Вхідні та стандартні лазівки заборонені.
Це код-гольф , тому найкоротший код виграє. Також сміливо запитуйте роз'яснення.
12345678-1234-1234-1234-123456789012
має бути дійсним UUID (чи потрібна будь-яка шістнадцятка цифр?). Ви вважаєте це лазівкою?
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
де y
це один [89AB]
. На момент отримання цього коментаря жодна відповідь (за винятком C # за допомогою вбудованої бібліотеки) гарантовано не дає дійсного випадкового UUID (і насправді вони, ймовірно, не виробляють).