Tôi cần một UUID. Công việc của bạn là tạo ra một.
UUID chính tắc (IDentifier duy nhất toàn cầu) là một số thập lục phân 32 chữ số với các dấu gạch nối được chèn vào một số điểm nhất định. Chương trình sẽ xuất ra 32 chữ số hex (128 bit), dưới dạng xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
( 8-4-4-4-12
chữ số), trong đó x
là một số thập lục phân ngẫu nhiên. Giả sử rằng PRNG ngôn ngữ của bạn là hoàn hảo, tất cả các kết quả đầu ra hợp lệ phải có cùng xác suất được tạo.
TL; DR
Tạo 32 chữ số thập lục phân ngẫu nhiên trong các 8-4-4-4-12
chữ số mẫu . Mã ngắn nhất sẽ thắng.
EDIT: Phải là thập lục phân. Luôn luôn chỉ tạo số thập phân là không hợp lệ. EDIT 2: Không tích hợp. Đây không phải là GUID, chỉ là các chữ số hex chung.
Ví dụ đầu ra:
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
Đầu vào, và sơ hở tiêu chuẩn không được phép.
Đây là mã golf , vì vậy mã ngắn nhất sẽ thắng. Ngoài ra, hãy thoải mái yêu cầu làm rõ.
12345678-1234-1234-1234-123456789012
phải là một UUID hợp lệ (hoặc có bất kỳ chữ số hex nào cần thiết không?). Bạn có coi đây là một lỗ hổng?
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
nơi y
là một trong những [89AB]
. Tại thời điểm nhận xét này, không có câu trả lời nào (ngoại trừ C # sử dụng thư viện tích hợp) được đảm bảo để tạo ra một UUID ngẫu nhiên hợp lệ (và thực tế, hoàn toàn không có khả năng không tạo ra một).