के लिए तार से अधिक लंबे हैश कुंजी पीढ़ी मैं उत्सुक कैसे दूसरों को इस समस्या का समाधान है, और अनुभवहीन समाधान के पीछे क्या समस्याओं घात में रहना हो सकता है कर रहा हूँ:अद्वितीय पूर्णांक/तेजी से compairson
मैं एक प्रणाली है जो शेयर बाजार डाटा को संसाधित करता है। संबंधित कीमतों/आकारों के साथ हजारों प्रतीकों हैं, जो प्रत्येक हजार मिलीसेकंद की दर से सिस्टम में बहती हैं।
प्रत्येक टिक पर होने वाली बुनियादी परिचालनों में से एक स्ट्रिंग तुलना है यह देखने के लिए कि क्या आने वाले प्रतीक में हम रुचि रखते हैं। ऐसी उच्च आवृत्ति पर, इन स्ट्रिंग तुलनाओं का अनुकूलन प्रदर्शन में एक मापनीय अंतर कर सकता है पूरी प्रणाली का।
मैं प्रतीक स्ट्रिंग का हैश उत्पन्न करने और रिकॉर्ड के साथ संग्रहीत करने के बारे में सोच रहा हूं। बाद की तुलना के लिए, सिस्टम को इस हैश का उपयोग करना चाहिए (एक इंट या लम्बा होने के कारण, तुलना एक स्ट्रिंग के प्रत्येक चरित्र के माध्यम से पुनरावृत्ति करने के बजाए एक एकल ऑपरेशन होना चाहिए, जब तक कि कोई मेल नहीं मिला हो)।
आइश खुद को उत्पन्न करने की लागत को अनदेखा करें (जो वास्तव में, वास्तव में निषिद्ध हो सकता है)। एकमात्र समस्या यह है कि मैं देख सकता हूं कि बड़ी संख्या में अद्वितीय प्रतीकों के साथ, एक हैश टकराव (दो अलग प्रतीकों एक ही हैश उत्पन्न करते हैं) विनाशकारी होगा। क्या कोई हैशिंग एल्गोरिदम है जो गारंटी देता है कि तार जो कुछ बाधाओं से मेल खाते हैं (जैसे वर्णों की संख्या पर सीमा) अद्वितीय हैं?
संपादित करें: मैं जावा में यह कोड लिखूंगा। हैशकोड की गति (टकराव) गुणवत्ता या उस गति के बारे में सुनिश्चित नहीं है जिसके साथ इसकी गणना की जाती है।
क्या आपने निम्न सामान्य उद्देश्यों में से एक या अधिक का उपयोग करने पर विचार किया है हैश फ़ंक्शन: हैशhttp: //www.partow.net/programming/hashfunctions/index.html –
उन लोगों के लिए जो http: // www लिंक पर क्लिक करना चाहते हैं। partow.net/programming/hashfunctions/index.html – cheffe