2015-05-31 7 views
5

मैं कोयल Pagh और Rodle से hashing के बारे में पढ़ रहा हूँ और मैं इस अनुच्छेद के अर्थ समझ में नहीं कर सकते हैं:।कोयल हैशिंग में "नए हैश फ़ंक्शन" क्या हैं?

यह हो सकता है कि इस प्रक्रिया लूप होता है, के रूप में छवि में दिखाया गया 1 (ख)। इसलिए पुनरावृत्तियों की संख्या को "MaxLoop" मान से अनुभाग 2.3 में निर्दिष्ट किया गया है। यदि पुनरावृत्तियों की संख्या तक पहुंच जाती है, हम नए हैश फ़ंक्शंस का उपयोग करके तालिकाओं में कुंजियों को फिर से चलाते हैं, और एक बार फिर नेस्टलेस कुंजी को समायोजित करने के लिए आज़माएं। रीहैशिंग के लिए नई टेबल आवंटित करने की कोई आवश्यकता नहीं है: हम टेबलों को सभी कुंजी पर सामान्य प्रविष्टि प्रक्रिया को हटाने और निष्पादित करने के लिए आसानी से तालिका में अपनी इच्छित स्थिति में नहीं पाएंगे।

द्वारा नए हैश फ़ंक्शंस का उपयोग करके इसका क्या अर्थ है?
सम्मिलित एल्गोरिदम में तालिका का आकार बदल गया है। क्या हमें किसी भी तरह का उपयोग करने के लिए हैश फ़ंक्शन का "पूल" होना चाहिए? हम इस पूल को कैसे बना सकते हैं?

उत्तर

3

हां, वे नए हैंश फ़ंक्शंस की अपेक्षा कर रहे हैं, जैसा कि वे कहते हैं। सौभाग्य से, उन्हें आपके वर्तमान डेटा सेट पर थोड़ा अलग हैशिंग व्यवहार, नए एल्गोरिदम के ढेर की आवश्यकता नहीं है।

पेपर की धारा 2.1 पर एक नज़र डालें, और उसके बाद परिशिष्ट ए। यह यादृच्छिक universal hash functions के निर्माण पर चर्चा करता है।

एक सरल, उम्मीदवार उदाहरण उदाहरण है, मान लीजिए कि आपको कुछ सामान्य हैश फ़ंक्शन मिल गया है, जो बाइट्स के ब्लॉक पर चल रहा है। हम इसे H(x) पर कॉल करेंगे। आप इसे नए, थोड़ा अलग हैश फ़ंक्शंस H_n(x) के परिवार का उत्पादन करने के लिए उपयोग करना चाहते हैं। खैर, अगर H(x) अच्छा है, और आपकी आवश्यकताएं कमजोर हैं, तो आप केवल H_n(x) = H(concat(n,x)) को परिभाषित कर सकते हैं। H_n(x) के व्यवहारों के बारे में आपके पास अच्छी मजबूत गारंटी नहीं है, लेकिन आप उम्मीद करेंगे कि उनमें से अधिकतर अलग होंगे।

+0

यदि मैं सही ढंग से समझता हूं तो हम या तो ए) इस सेट से एक नया हैश फ़ंक्शन प्राप्त करें और तालिका आकार को स्थिर रखें या बी) उसी 2 हैश फ़ंक्शंस का उपयोग करके तालिका का आकार बदलें और उन्हें कभी भी न बदलें? – Jim

+0

दोनों विकल्प लगभग वर्तमान लूप को निश्चित रूप से तोड़ देंगे। यदि आप उस स्थान की मात्रा के बारे में चिंतित नहीं हैं जो आप उठाएंगे, आकार बदलना अधिक उपयोगी हो सकता है, क्योंकि यह किसी अन्य लूप की बाधाओं को कम करेगा (जब तक आपके पास अधिक कुंजी संग्रहीत न हों, वैसे भी)। ध्यान रखें कि आकार बदलना हैश फ़ंक्शन का एक प्रकार है, क्योंकि आप शायद हैश फ़ंक्शन मॉड्यूल का उपयोग टेबल के आकार का कर रहे हैं; आकार बढ़ाएं और चीजें खत्म होने पर आप बदल जाएंगे। –

+0

तो यदि हम (ए) यानी एक नया हैश का उपयोग टेबल आकार को निर्धारित करते हैं, तो टेबल आकार कैसे निर्धारित किया जाता है? कागज से यह मुझे स्पष्ट नहीं है। यदि कुंजी डालने की संख्या अज्ञात है तो कोकू एल्गोरिदम के लिए कुछ तालिका आकार प्राप्त करना संभव है? – Jim

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