इसे "हैश टेबल" या "हैश फ़ंक्शन" क्यों कहा जाता है? हैश का यहाँ मेरे लिए कोई मतलब नहीं है [बंद]


26

अब यह 4 साल के विकास के बारे में है जिसका उपयोग मैं कर रहा हूँ, सुनवाई कर रहा है, के बारे में बात कर रहा है, और हैश टेबल और हैश कार्यों को लागू कर रहा है। लेकिन मैं वास्तव में कभी नहीं समझता कि इसे हैश क्यों कहा जाता है?

मुझे याद है कि पहले दिन जब मैंने प्रोग्रामिंग शुरू की थी, तो यह शब्द मेरे लिए बोझिल शब्दावली था। मुझे कभी नहीं पता चला कि यह क्या है, इसके नाम के आधार पर । मैंने केवल प्रयोगात्मक रूप से समझा कि यह क्या करता है और हमें इसका उपयोग क्यों और कब करना चाहिए

हालांकि, मैं अब भी कभी-कभी यह जानने की कोशिश करता हूं कि इसे हैश क्यों कहा जाता है । मुझे टेबल या फ़ंक्शन के साथ कोई समस्या नहीं है और ईमानदार होने के लिए, वे बहुत ही संवेदनशील, तर्कसंगत शब्द हैं। हालाँकि, मुझे लगता है कि हैश के बजाय बेहतर शब्दों का इस्तेमाल किया जा सकता है, जैसे कि , कुंजी या विशिष्टताकुंजी तालिका या विशिष्टता तालिकारखें

मेरे शब्दकोश के अनुसार, हैश का मतलब है:

  1. आलू और मीट की तली हुई डिश (अत्यधिक अप्रासंगिक)
  2. # प्रतीक (AKA नंबर साइन, पाउंड साइन, आदि) (अभी भी अप्रासंगिक, शायद सिर्फ एक गलत नामकरण है)
  3. चरित्र स्ट्रिंग के लिए एल्गोरिथ्म लागू करें (अभी भी विशिष्टता से कोई लेना-देना नहीं है , जो हैश तालिका की सबसे महत्वपूर्ण विशेषता है)
  4. खाना काटें
  5. हैश के लिए एक और शब्द

क्या किसी को पता है कि इसे हैश क्यों कहा जाता है?


32
आप थोड़ी गलतफहमी में हैं कि क्या हैश हैं। विशिष्टता स्पष्ट रूप से हैश फ़ंक्शन की विशेषता नहीं है (अर्थात वे कभी भी इंजेक्शन नहीं हैं)।
पीटर टेलर

1
@Peter टेलर: हैश टेबल इंजेक्क्टिव मैपिंग परिभाषित करते हैं।
रीयरियरपोस्ट

2
@Peter टेलर: थोड़ा सा नाइटपिक होने के लिए, उन्हें इंजेक्शन लगाने की आवश्यकता नहीं है , लेकिन कभी-कभी वे भी विशेषण होते हैं। एक पूर्णांक के लिए हैशिंग फ़ंक्शन के विशिष्ट कार्यान्वयन के बारे में सोचें :)
कीपला

4
एक हैश अद्वितीय हो सकता है, जब तक कि या तो मुख्य स्थान हैश वैल्यू स्पेस (टेबल हैश के लिए) से बड़ा नहीं होता है, या हैश वैल्यू स्पेस इतना बड़ा होता है कि टकराव गणितीय रूप से अनंत (क्रिप्टोग्राफिक हैश के लिए) होते हैं।
सुरक्षित

1
इसके अलावा, एक "कुंजी तालिका" किसी भी "कुंजी / मूल्य" डेटास्ट्रक्चर (जिसे "डिक्शनरी" भी कहा जाता है) की तरह लगता है। सभी की / वैल्यू डेटास्ट्रक्चर नहीं हैश टेबल हैं।
बरजक

जवाबों:


46

विकिपीडिया के अनुसार, यह हैश फ़ंक्शन को संदर्भित करता है । यदि आप एक कदम और आगे जाना चाहते हैं, हैश फ़ंक्शन के लिए विकी पृष्ठ कहता है कि हैश फ़ंक्शन में "हैश" शब्द का उपयोग इस तरह से हुआ है:

शब्द "हैश" इसके गैर-तकनीकी अर्थ के साथ सादृश्य के माध्यम से आता है, "काट और मिश्रण" करने के लिए। वास्तव में, विशिष्ट हैश फ़ंक्शन, मॉड ऑपरेशन की तरह, कई उप-डोमेन में इनपुट डोमेन को "काट" देता है जो कुंजी वितरण की एकरूपता में सुधार के लिए आउटपुट रेंज में "मिश्रित" मिलता है।


2
निश्चित नहीं है कि 'उप-डोमेन' वहां क्या कर रहे हैं। यह सिर्फ इतना है कि हैश फ़ंक्शन अपने डोमेन के मूल्यों को अच्छी तरह से 'मिक्स अप' करता है।
रीयरियरपोस्ट

15

फ्रांसीसी में, एक हैश तालिका को "टेबल डी हैचेज" कहा जाता है, संबंधित क्रिया "हैचर" का अर्थ है चॉप करना / (ज्यादातर खाना)। क्रिया to hashका अंग्रेजी में एक ही अर्थ होता है।

तो जैसा कि अन्य ने बताया है कि इसे हैश कहा जाता है, क्योंकि आप अपने इनपुट को काटते हैं जिसे आप अलग-अलग जगहों (आपकी टेबल प्रविष्टियों) में डालते हैं।


2
यह वास्तव में एक उच्चारण के बिना "हैचेज" और "हैचर" लिखा जाता है।
पाइवल

10

नंबर 3 के पास सब कुछ है। से विकिपीडिया :

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

index = f(key, arrayLength)

हैश फ़ंक्शन indexडेटा से सरणी के भीतर की गणना करता है keyarrayLengthसरणी का आकार है। के लिए विधानसभा भाषा या अन्य निम्न स्तर के कार्यक्रम, एक तुच्छ हैश फंक्शन अक्सर सिर्फ एक या दो इनलाइन साथ एक सूचकांक बना सकते हैं मशीन निर्देश

तो एक हैश टेबल वास्तव में एक कुंजी के आधार पर मूल्यों को संग्रहीत नहीं करता है; यह उस कुंजी के हैशेड संस्करण के आधार पर मूल्यों को संग्रहीत करता है ।


1
यह इस बात पर निर्भर करता है कि आपका हैश टेबल से क्या मतलब है। पर्ल, जावा और सी # जैसी भाषाओं में दी जाने वाली डेटा संरचना आपको एक मुख्य-मूल्य-मूल्य मैपिंग प्रदान करती है, जिस तरह की हैश तालिका का उपयोग आप आंतरिक रूप से करते हैं।
रीयरियरपोस्ट

10

हैश कोड का उपयोग करने के कारण हैश टेबल को इस तरह से कहा जाता है और यह "कट फूड" से संबंधित है।

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

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

3

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

एक तरह से कंप्यूटर विज्ञान में हैशिंग कार्य थोड़े समान हैं। वे अलग-अलग आकार और शब्दार्थों का एक पूरा इनपुट लेते हैं, और -बेर बस डालते हैं- वे इसे टुकड़ों में काटते हैं और उन चारों को मिलाते हैं और परिणामस्वरूप अनुक्रम को टुकड़ों में काटते हैं और चारों ओर मिश्रण करते हैं। अंत में आपके पास हैशेड का एक चम्मच (एन बाइट्स) है।


हालांकि कैविट के साथ सुपर विलेन भी एक दिए गए मापदंडों के साथ एक सुपर हीरो के रूप में उसी हैश की वापसी कर सकता है क्योंकि हैशिंग विलक्षणता को निर्धारित नहीं करता है। सभी के बाद हैश टकराव होते हैं ... इसकी टक्कर के बाद आप क्या करते हैं ...
ऋग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.