this question के अनुसार एक .Net शब्दकोश प्राइम संख्याओं को आवंटित स्थान का आकार देता है जो कम से कम वर्तमान आकार से दोगुना होता है। प्राइम संख्याओं का उपयोग करना क्यों महत्वपूर्ण है और वर्तमान आकार में केवल दो बार नहीं? (मैंने जवाब खोजने के लिए अपनी Google-fu शक्तियों का उपयोग करने की कोशिश की, लेकिन इसका कोई फायदा नहीं हुआ)क्यों नेट शब्दकोश प्राइम संख्याओं का आकार बदलते हैं?
उत्तर
यह choosing a good hashing function से संबंधित एक एल्गोरिदम कार्यान्वयन विवरण है और जो समान वितरण प्रदान करता है। एक गैर-वर्दी वितरण टकराव की संख्या बढ़ता है, और उन्हें हल करने की लागत बढ़ जाती है।
प्राइम नंबर चुनना ** नहीं ** समान वितरण प्रदान करता है, oversimplify करने की कोई आवश्यकता नहीं है। 'हैशसाइज = प्राइम_नंबर 'के साथ, आपके पास' हैशसाइज = 2^के' या किसी अन्य के साथ टकराव होने का बिल्कुल एक ही मौका है। यह सिर्फ कुछ हैश आकार टकराव को 'अप्रत्याशित', 'यादृच्छिक' या 'समान रूप से वितरित' दिखते हैं। दूसरी ओर, 'हैशसाइज = 2^के' होने का मतलब यह होगा कि xor के आधार पर कोई हैश फ़ंक्शन चूस जाएगा। –
प्राइम संख्याओं के गणित के कारण। उन्हें विभिन्न छोटी संख्याओं में फ़ैक्टर नहीं किया जा सकता है। जब आप संग्रहित वस्तुओं से हैश संख्या को विभाजित करते हैं तो आपको एक समान वितरण मिलता है। यदि आपके पास वस्तुओं के आधार पर कोई प्रमुख संख्या नहीं है, तो वितरण भी नहीं हो सकता है।
बाल्टी जिसमें एक तत्व रखा जाता है (hash & 0x7FFFFFF) % capacity
द्वारा निर्धारित किया जाता है। इसे समान रूप से वितरित करने की आवश्यकता है। इससे यह चलता है कि यदि एकाधिक प्रविष्टियां जो एक निश्चित आधार (hash1 = x1 * base
, hash2 = x2 * base
, ...) पर हैं, जहां base
और capacity
coprime नहीं हैं (सबसे बड़ा आम divisor> 1) कुछ स्लॉट का उपयोग खत्म हो गया है, और कुछ कभी नहीं हैं उपयोग किया गया। चूंकि प्राइम नंबर खुद को छोड़कर किसी भी संख्या में कॉप्रिम हैं, इसलिए उनके पास एक अच्छा वितरण प्राप्त करने की अपेक्षाकृत अच्छी संभावनाएं हैं।
इसकी एक विशेष रूप से अच्छी संपत्ति यह है कि capacity > 30
हैशकोड में प्रत्येक बिट का योगदान अलग है। तो यदि हैश की भिन्नता केवल कुछ बिट्स में केंद्रित है तो यह अभी भी एक अच्छा वितरण का कारण बन जाएगी। यह बताता है कि क्यों क्षमताएं दो की शक्तियां खराब हैं: वे उच्च बिट्स को मुखौटा करते हैं। संख्याओं का एक समूह जहां केवल उच्च बिट अलग हैं, वह असंभव नहीं है।
व्यक्तिगत रूप से मुझे लगता है कि वे उस कार्य को बुरी तरह चुनते हैं। इसमें एक महंगा मॉड्यूलो ऑपरेशन होता है और यदि प्रविष्टियां प्राइम-क्षमता के गुणक हैं तो इसका प्रदर्शन टूट जाता है। लेकिन यह ज्यादातर अनुप्रयोगों के लिए काफी अच्छा लगता है।
- 1. शब्दकोश <,> आकार, GetHashCode और प्राइम नंबर?
- 2. फ़ॉन्ट आकार जो आप विंडो का आकार बदलते हैं
- 3. serializing नेट शब्दकोश
- 4. emacs प्रोग्राम आकार में विंडो आकार बदलते हैं
- 5. रनटाइम पर आप फैंसीबॉक्स का आकार कैसे बदलते हैं?
- 6. आप ग्रोवी में छवियों का आकार कैसे बदलते हैं?
- 7. ब्राउज़र का आकार बदलते समय jqplot चार्ट का आकार बदलें
- 8. नेट शब्दकोश बनाम कक्षा गुण
- 9. आप यूआईएफओटी का रंग कैसे बदलते हैं?
- 10. छोटे-आइश संख्याओं के लिए सबसे तेज़ प्राइम टेस्ट
- 11. प्राइम नंबर
- 12. संख्याओं का समर्थन क्यों नहीं करते हैं। Dup?
- 13. ggplot2 (किंवदंती और अक्ष आकार बदलते हैं) का उपयोग करते हुए आर में लगातार ग्राफ आकार
- 14. तत्व ऑर्डर बदलते हैं?
- 15. पायथन - संख्या आकार पर अजीब/यहां तक कि संख्याओं और बदलते आउटपुट की जांच
- 16. एल्गोरिदम अनुकूलित करने में मदद की ज़रूरत है - सभी प्राइम संख्याओं का योग दो मिलियन
- 17. प्राइम का एल्गोरिदम समय जटिलता
- 18. अभिविन्यास बदलते समय UIView का सही आकार कैसे बदलें?
- 19. प्राइम फैक्टर
- 20. खिड़की का आकार बदलते समय एंकर किए गए नियंत्रण का आकार बदल नहीं जाएगा (56k सावधान)
- 21. आप ब्राउज़र विंडो का आकार कैसे बदलते हैं ताकि आंतरिक चौड़ाई एक विशिष्ट मान
- 22. क्या आप प्राइम नंबर
- 23. क्यों आकार (param_array) सूचक का आकार है?
- 24. यदि आप ऐप स्टोर पर अपना ऐप का नाम बदलते हैं तो शॉर्टलिंक बदलते हैं?
- 25. jQuery बदलते फ़ॉन्ट परिवार और फ़ॉन्ट आकार
- 26. खिड़की का आकार बदलते समय टिंकर सूचीबॉक्स विजेट का आकार बदलें
- 27. Winforms एप्लिकेशन में मुख्य फ़ॉर्म का आकार बदलते समय मैं अपने पैनल का आकार कैसे बदलूं?
- 28. क्यों डब्ल्यूपीएफ से सिल्वरलाइट 4 में बदलते हैं?
- 29. हस्ताक्षरित संख्याओं पर एमआईपीएस संचालन क्यों हस्ताक्षरित परिणाम देते हैं?
- 30. Jquery datepicker वर्ष बदलते हैं
आपको एक प्रश्न के विचार के रूप में, क्या किसी को पेड़ की तरह संतुलित डेटा संरचना पता है जो प्रमुख आकारों का आकार बदलता है? शायद मुझे एक और प्रश्न पोस्ट करना चाहिए –
तब नेट के शब्दकोश के पीछे पेड़ डेटा संरचना क्या है? –
मैंने यहां सवाल पूछा http://stackoverflow.com/questions/4639122/balanced-tree-like- डेटा- संरचना- थैट-resizes-to-prime-sizes –