मैं सेट H (।) और एक संबंध R (।,) पर एक हैश फ़ंक्शन की तलाश कर रहा हूं, जैसे कि यदि A को B में शामिल किया गया है तो R (H (A), H (B))। बेशक, आर (।,) को सत्यापित करना आसान होना चाहिए (निरंतर समय), और एच (ए) को रैखिक समय में गणना की जानी चाहिए।
H और R का एक उदाहरण है:
- , जहां k एक पूर्णांक है और h (x) पूर्णांकों पर एक हैश फ़ंक्शन है।
- आर (एच (ए), एच (बी)) = (एच (ए) और एच (बी)) == एच (ए)
क्या कोई अन्य अच्छे उदाहरण हैं? (good को परिभाषित करना मुश्किल है लेकिन सहज रूप से यदि R (H (A), H (B)) है तो whp A को B में शामिल किया जाता है)।
बाद में संपादित करें :
- मैं हैश फ़ंक्शंस के परिवार की तलाश में हूं। मेरे कई सेट हैं; प्रत्येक सेट में 3 - 8 तत्व; उनमें से 90% में 3 या 4 तत्व हैं। उदाहरण हैश फ़ंक्शन जो मैंने दिया है वह इस मामले के लिए बहुत अच्छी तरह से वितरित नहीं है।
- H (।) के बिट्स की संख्या (मेरे उदाहरण में, k) जो छोटी होनी चाहिए (यानी H। (।) एक पूर्णांक या लंबे समय में फिट होनी चाहिए)।
- R की एक अच्छी संपत्ति यह है कि यदि H (।) में k बिट्स हैं तो R (।)। (3 ^ k - 2 ^ k) / 4 ^ k युग्मों के लिए सही है, अर्थात। बहुत कम जोड़े के लिए।
- ब्लूम फिल्टर बड़े सेटों के लिए विशेष रूप से अच्छे हैं। मैंने इस समस्या के लिए बीएफ का उपयोग करने की कोशिश की, लेकिन इष्टतम परिणाम केवल एक फ़ंक्शन के साथ थे।
(crosspost से stackoverflow , मैं एक जवाब काफी अच्छा प्राप्त नहीं किया था)