हैश फ़ंक्शन वर्गीकरण


9

इंटरनेट पर, मैं इस सवाल पर आया हूं:

विभिन्न तरीकों के आधार पर हाशिंग फ़ंक्शंस को वर्गीकृत करें जिनके द्वारा कुंजी मूल्य पाया जाता है।

जैसे जवाब के साथ

  • सीधा तरीका
  • घटाव विधि
  • मोडुलो-डिवीजन विधि
  • डिजिट-एक्सट्रैक्शन विधि
  • मध्य-वर्ग विधि
  • तह विधि
  • छद्म यादृच्छिक विधि

जो मुझे अजीब लगता है। मुझे लगता है कि मैं हैशिंग के बारे में बहुत कुछ जानता हूं, लेकिन यह मेरे लिए सादा गिब्रिश है, क्या कोई समझा सकता है?

जवाबों:


4

वे हैशकोड को ऐरे के एक इंडेक्स में बदलने के तरीके हैं जिसमें मान शामिल हैं। मान लीजिए कि आपके पास 0x12345678 का हैशकोड है। एक बहुत बड़ी संख्या और आपके पास इस आकार की एक सरणी होने की संभावना नहीं है। यदि आप करते हैं तो आप बस कर सकते हैं

Value = array[0x12345678];

और किया जाना (प्रत्यक्ष विधि)।

यदि आप नहीं करते हैं, तो आपके पास इस मूल्य को एक में बदलने का एक तरीका है जो बहुत सारे टकरावों से बचने की कोशिश करते हुए सरणी आकार को फिट करता है। उपयोग की गई शर्तों को शायद अन्य नामों से भी जाना जाता है, लेकिन उदाहरण के लिए आप हैशकोड के उच्च बिट्स को बंद कर सकते हैं

Value = array[hashcode & 0xffff];

या सरणी आकार के खिलाफ हैशकोड मॉड

Value = array[hashcode % array.size()]; // modulo division

आदि आदि

संपादित करें: यह लिंक मदद कर सकता है


धन्यवाद, यह बात है - लिंक इस *** का स्रोत लगता है। इसका अब भी कोई मतलब नहीं है क्योंकि वे कई चीजों को एक साथ मिला रहे हैं: 1. एक कुंजी से हैशकोड की गणना करना (जैसे, गुना और जोड़ना), 2. हैश में सुधार (= स्मियर करना) (जैसे, मध्य-वर्ग), 3. मैपिंग सूचकांक को हैश (जैसे, मापांक, "और")।
माआर्टिनस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.