Sử dụng Khuôn khổ .NET, có cách nào để tạo một GUID ngẫu nhiên trong C# trong một khoảng thời gian xác định không? Ví dụ, tôi cần một GUID ngẫu nhiên lớn hơn ffffffff-ffff-ffff-ffff-1fffffffffffff và nhỏ hơn ffffffff-ffff-ffff-ffff-2fffffffffffff.Tạo một GUID ngẫu nhiên trong C# trong một khoảng thời gian cụ thể
7
A
Trả lời
7
Sử dụng this overload:
[CLSCompliantAttribute(false)]
public Guid(
uint a,
ushort b,
ushort c,
byte d,
byte e,
byte f,
byte g,
byte h,
byte i,
byte j,
byte k
)
Guid(0xa,0xb,0xc,0,1,2,3,4,5,6,7)
tạo ra một Guid tương ứng với:
0000000a-000b-000c-0001-020304050607
Bạn có thể ngẫu nhiên các thông số bất kỳ cách nào bạn muốn. Ví dụ: bạn có thể làm:
var r[] = new byte[] { 1,2,3,4 } // chosen by fair dice rolls
// guaranteed to be random
var guid = new GUID(0xFFFFFFFF, 0xFFFF, 0xFFFF, 0xFFFF, r[1], r[2], r[3], r[4]...
Vâng, bạn có ý tưởng. Bạn phải làm một số bit twiddling để có được tham số thứ năm bên phải.
+3
Mặc dù điều này có thể nói rõ ràng, chỉ vì nó là một 'Guid' không có nghĩa đó là một GUID. Đó là, nó thuộc vào bạn để đảm bảo thuật toán của bạn đảm bảo tính duy nhất toàn cầu. Nếu không nó chỉ là một 'Id'. –
Các vấn đề liên quan
- 1. Tạo các số nguyên giả ngẫu nhiên từ một khoảng thời gian thay đổi hiệu quả
- 2. Java: giá trị lâu ngẫu nhiên trong một khoảng thời gian
- 3. Tạo một bộ tạo số giả ngẫu nhiên trong C#
- 4. Tạo thời gian ngày ngẫu nhiên trong java (thời gian joda)
- 5. Tạo một số ngẫu nhiên giữa nhiều khoảng
- 6. srand (thời gian (0)) và tạo số ngẫu nhiên
- 7. Java: chọn một vài số ngẫu nhiên khác nhau từ mảng trong một thời gian
- 8. Sử dụng một khoảng thời gian thay đổi trong một khoảng thời gian trong Postgres
- 9. Tạo một số thập phân ngẫu nhiên trong C#
- 10. Tạo một đôi ngẫu nhiên trong một phạm vi
- 11. Joda Thời phút trong một thời gian hoặc khoảng
- 12. Trì hoãn một hành động trong một khoảng thời gian
- 13. Tạo số ngẫu nhiên trong C
- 14. Tách một khoảng thời gian thành nhiều khoảng thời gian
- 15. Tạo một số ngẫu nhiên trong phạm vi?
- 16. hiệu quả tạo ra một mẫu ngẫu nhiên của thời gian và ngày giữa hai ngày
- 17. VS2010 thay đổi cổng cụ thể một cách ngẫu nhiên
- 18. C# Ngẫu nhiên (Dài)
- 19. trình tạo số ngẫu nhiên trong khoảng từ 0 - 1000 trong C#
- 20. Số ngẫu nhiên trong một phạm vi
- 21. Khoảng thời gian trong mục tiêu C
- 22. Tạo số ngẫu nhiên đồng thời
- 23. cách dừng vòng lặp javascript trong một khoảng thời gian cụ thể?
- 24. Làm cách nào để hiển thị bánh mì nướng trong một khoảng thời gian cụ thể?
- 25. Số ngẫu nhiên trong C
- 26. MVC asp.net C# tạo ngẫu nhiên cùng một số
- 27. Nhận mỗi giờ trong một khoảng thời gian
- 28. Tạo ngẫu nhiên Gaussian đôi trong Objective-C/C
- 29. Tạo một dãy các số ngẫu nhiên
- 30. Chạy một hàm trong khoảng thời gian trong jQuery
Điều gì sẽ xảy ra nếu bạn cần tạo nhiều GUID hơn trong phạm vi? Ví dụ: Thuật toán của bạn được gọi là 20 lần cho phạm vi ffffffff-ffff-ffff-ffff-fffffffffffff0 đến ffffffff-ffff-ffff-ffff-ffffffffffffff? –
Đó không phải là cách chúng hoạt động, nói chung. Có một số yếu tố không ngẫu nhiên với nó, nhưng vì lý do phiên bản và như vậy, bạn không thể chỉ (với GUIDs ngẫu nhiên) tạo ra một trong một phạm vi cụ thể. Nếu không, họ sẽ không làm việc như họ làm. – ssube