2010-06-29 12 views
13

मैं एक परियोजना पर काम कर रहा हूं जहां मुझे लगभग 1 अरब GUID उत्पन्न करने की आवश्यकता है।1 अरब पुनरावृत्तियों में एक ही GUID प्राप्त करने की संभावना क्या है?

मुझे पता है कि GUID अद्वितीय होने की गारंटी नहीं है लेकिन लगभग हर समय अद्वितीय हैं।

यदि मैंने एक अरब GUID उत्पन्न किए हैं, तो संभावना है कि एक मैच होगा?

+0

संभव डुप्लिकेट [GUID टकराव संभव हैं?] (Http: // stackoverflow.com/questions/184869/are-guid-collisions- संभव) – tanascius

+0

आप कितने समय तक GUID उत्पन्न कर रहे हैं? – overslacked

+0

यह सब एक बैच में किया जाएगा, इसलिए – Diskdrive

उत्तर

14

http://blogs.msdn.com/b/oldnewthing/archive/2008/06/27/8659071.aspx

नेट GUID टाइमस्टैम्प की

  • 60 बिट,
  • 48 कंप्यूटर पहचानकर्ता के टुकड़े,
  • 14 uniquifier के टुकड़े, और
  • छह बिट्स होते हैं निश्चित

तो ऑस्कर द्वारा उद्धृत यूयूआईडी संभावना यहां काम नहीं करती है। लेकिन यदि आप एक कंप्यूटर से अपने सभी 1 अरब GUID बनाते हैं, तो डुप्लिकेट प्राप्त करने का कोई मौका नहीं है (सिवाय इसके कि आप घड़ी के साथ खेल रहे हैं ;-)

2

http://en.wikipedia.org/wiki/Uuid#Random_UUID_probability_of_duplicates

n संभावना

68.719.476.736 = 2^36 = 0,0000000000000004 = 4 × 10^-16)

2.199.023.255.552 = 2^41 = 0,0000000000004 = (4 × 10^-13)

70.368.744.177.664 = 2^46 = 0,0000000004 = (4 × 10^-10)

+0

वह .NET GUID के बारे में बात कर रहा है, वे पूरी तरह से यादृच्छिक नहीं हैं, जैसा लेख में माना गया है। समय और प्रोसेसर आईडी (?) के कारण कुछ हिस्सों हैं ... अभी भी 1 अरब GUID में डुप्लिकेट प्राप्त करने का मौका एक ही मशीन पर बहुत ही असंभव है, यह असंभव भी हो सकता है। – Hinek

5

आप एक ही मशीन से GUIDs बना रहे हैं और एक ही एल्गोरिदम का उपयोग करके आपको टकराव नहीं मिलेगा।

संबंधित मुद्दे