2011-02-02 28 views
11

बस उत्सुक है लेकिन एक ग्रिड से मेल खाने की संभावना क्या है?गइड अनुमान लगाने (मिलान करने) की संभावना क्या है?

एसक्यूएल सर्वर से एक Guid कहते हैं: 5AC7E650-CFC3-4534-803C-E7E5BBE29B3D

यह एक भाज्य है ?: (36 * 32)! = (1152)!

पर चर्चा = डी

+1

मान लें कि एक के माध्यम से ... यदि GUID में केवल दो वर्ण थे, तो यह (2 * 36) होगा! ? 36 * 36 अधिक संभावनाएं लगता है ... इसे तीन वर्णों के लिए काम करें, और फिर देखें कि इसका क्या अर्थ दिखता है। –

+0

आपको क्यों लगता है कि यह एक फैक्टोरियल है। यह केवल तभी होगा यदि आप मूल्य दोहरा नहीं सकते। –

+0

मैं शर्त लगाता हूं कि केवल उन क्षेत्रों में से एक (उदा। E7E5BBE29B3D) यादृच्छिक है। अन्य तय किए गए हैं (उदा। मेजबान या सर्वर उदाहरण द्वारा) या वर्तमान समय के आधार पर। इससे गंभीरताएं कम हो जाती हैं। – arnaud576875

उत्तर

26

'एम 2 चुनें' यह स्पष्ट नहीं है आप क्या पूछ रहे हैं मैं आपके प्रश्न की व्याख्या करने के दो तरीके देखता हूं।

  1. GUID g को देखते हुए, किसी अनुमान लगाने की संभावना क्या है? आइए सादगी के लिए मान लें कि एक GUID के सभी 128 बिट उपलब्ध हैं। फिर g अनुमान लगाने की संभावना 2^-128 है। वह छोटा है। आइए इसके आस-पास कुछ अंतर्ज्ञान प्राप्त करें। आइए मान लें कि हमारा हमलावर प्रति सेकंड एक अरब GUID उत्पन्न कर सकता है। g अनुमान लगाने का 50% मौका पाने के लिए, हमारे हमलावर को 2^127 GUID उत्पन्न करना होगा। प्रति सेकंड एक बिलियन की दर से, इसमें 2^127 GUID उत्पन्न करने के लिए 5391448762278159040348 वर्ष लगेंगे।

  2. हम guids का संग्रह बना रहे हैं। टकराव की संभावना क्या है? यही है, संभावना है कि हम एक ही मूल्य के साथ दो guids उत्पन्न करते हैं? यह जन्मदिन विरोधाभास है।यदि आप यादृच्छिक रूप से एन GUID का अनुक्रम उत्पन्न करते हैं, तो कम से कम एक टकराव की संभावना लगभग p(n) = 1 - exp(-n^2/2 * 2^128) है (यह संभव जन्मदिन 2^128 होने की जन्मदिन की समस्या है)।

n p(n) 2^30 1.69e-21 2^40 1.77e-15 2^50 1.86e-10 2^60 1.95e-03

तो, भले ही आप 2^60 GUIDs उत्पन्न, एक टक्कर की संभावना बेहद कम है। यदि आप प्रति सेकंड एक अरब GUID उत्पन्न कर सकते हैं, तो अभी भी टक्कर के 1.95e-03 मौके के लिए 36 साल लगेंगे।

+0

2^64 सही है? 2^128 का आधा 2^127 है। सांख्यिकी मेरा मजबूत बिंदु नहीं है, इसलिए हो सकता है कि यह केवल 50% थ्रेसहोल्ड तक पहुंचने के लिए sqrt (n) लेता है। – Jimothy

0

यह है 1/(दी यूआईडी लंबाई के साथ संभव अद्वितीय संख्या की संख्या)। उपरोक्त उदाहरण में हम 16 बाइट्स, या 128 बिट्स देखते हैं। 2^128, इसलिए एक मैच की संभावना 1/2^128 है।

6

संभव GUIDs (128-बिट मान) की संख्या 2^128 या 3.4 × 10^38 है - पृथ्वी की पूरी मात्रा के लगभग 2 ट्रिलियन प्रति घन मिलीमीटर।

दूसरे शब्दों में, कम तरह का।

(स्रोत पृथ्वी मात्रा में संदर्भ के लिए: विकिपीडिया)

3

GUID पीढ़ी एल्गोरिथ्म के प्रकार पर निर्भर करता है। वर्तमान एल्गोरिदम 124 यादृच्छिक बिट्स का उपयोग करते हैं, इसलिए संभावना 2^124 में 1 है।

पुराने एल्गोरिदम (जो समय और मैक पता का उपयोग करते हैं) के साथ संभावना अधिक है।

2

आपकी गणनाओं के साथ कई चीजें गलत हैं। सबसे पहले, 36 * 32 का तात्पर्य है कि कोई भी अल्फान्यूमेरिक वर्ण GUID का हिस्सा हो सकता है। यह मामला नहीं है; केवल हेक्स वर्णों की अनुमति है।

दूसरे, अद्वितीय GUIDs की संख्या के लिए गणना मान्य वर्णों की संख्या है (16: 0-9, वायुसेना)^GUID की लंबाई (32 वर्ण)

तो हम 16^32 है ==> 2^(4^32) ==> 2^128

किसी भी एक GUID अनुमान लगाने की बाधा 1/2^128 है।

+0

यह मानता है कि GUID का प्रत्येक बाइट वास्तव में यादृच्छिक है। यह सुनिश्चित करने के लिए कि मेजबानों के बीच GUID अद्वितीय हैं, यूयूआईडी के अधिकांश भाग वास्तव में तय किए गए हैं (उदा। मैक पता)। फिर शेष वर्तमान समय के साथ गद्देदार है और कुछ बाइट यादृच्छिक हैं। और यहां तक ​​कि उन यादृच्छिक बाइट्स अनुमानित हैं जब आप पहले से उत्पन्न यूयूआईडी में से कुछ जानते थे।) मैक पते के 48 बिट्स + माइक्रोटाइम के 64 कहते हैं। 128-48-64 16 =। मैं कहूंगा कि बाधाएं 2^16 से 2^128 के करीब हैं। – arnaud576875

0

यह इस बात पर निर्भर करता है कि कितने GUID उत्पन्न होते हैं। यह आंकड़ों में जन्मदिन की समस्या के समान है। देखें विकिपीडिया और http://betterexplained.com/articles/understanding-the-birthday-paradox/ (यह एक विशेष रूप से एक GUID उदाहरण है)

सामान्य में, एन संभव guids से अधिक एम guids पैदा करने के लिए एक टक्कर की संभावना 1 - (1- (1/N))^C(M,2) जहां C(M,2) है

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