ในการใช้ตัวกรอง Bloom วิธีการดั้งเดิมเรียกใช้ฟังก์ชันแฮชอิสระหลายตัว Kirsch และ Mitzenmacherแสดงให้เห็นว่าคุณต้องการเพียงสองจริง ๆ เท่านั้นและสามารถสร้างส่วนที่เหลือเป็นชุดเชิงเส้นของมัน
คำถามของฉันคืออะไรจริง ๆ แล้วอะไรคือความแตกต่างระหว่างฟังก์ชันแฮชสองอันกับอันที่สองมีเอนโทรปี
สิ่งนี้มาจากการดูสิ่งที่คุณทำกับผลลัพธ์ของฟังก์ชันแฮช: คุณจะใช้ค่าแฮชแบบ 64 บิตและปรับให้เท่าขนาดของเวกเตอร์บิตซึ่งอาจเล็กกว่า 2 อย่างมาก64 . นี่เป็นการเปลี่ยนแปลงที่ทำให้สูญเสียเอนโทรปีอย่างชัดเจน (ยกเว้นในกรณีที่ขนาดแฮชและความจุของตัวกรองของคุณไม่ตรงกัน) สมมติว่าตัวกรองของฉันมีรายการน้อยกว่า 2 32สิ่งที่จะหยุดฉันจากการแยกค่าแฮช 64- บิตของฉันเป็นสองแฮช 32- บิตสองและการรวมกันเชิงเส้นของเหล่านั้น หรือใช้เพื่อหว่าน PRNG
กล่าวอีกนัยหนึ่งฉันต้องทราบข้อมูลจริงเพียงใดเกี่ยวกับองค์ประกอบที่ฉันแทรกลงในตัวกรองแต่ละชุดของ Bloom เพื่อให้แน่ใจว่ามีอัตราบวกเป็นเท็จมาตรฐาน หรือโดยทั่วไปความสัมพันธ์ระหว่างว่าฉันสามารถแยกแยะองค์ประกอบต่าง ๆ ได้ดีเพียงใด (ฉันใช้เพื่ออธิบายองค์ประกอบเหล่านี้กี่บิต) กับตัวกรอง Bloom ของฉันทำงานอย่างไร
ดูเหมือนว่าฉันจะไปได้ด้วยบิตสำหรับขนาดฟิลเตอร์ของmหรือเท่ากับ2 ( lg ( - n ln p ) - 2 lg ( ln 2 ) )บิตเพื่อเก็บองค์ประกอบnด้วยความน่าจะเป็นบวกปลอมหน้า ....