← Back to context

Comment by Someone

1 hour ago

Logic.

“It would be more effective in avoiding false positives”: consider a single hash function. To get a false positive, a necessary (but not sufficient) condition is that the bit position that it computes is set.

If you use multiple hash functions with a single table, that happens if any of the hash functions produced the same bit position for a different key.

If you use a single hash function for a bit set, your only chance for that to happen is that that same hash function produced the same bit position for a different key. That probability is lower.

“but require more (typically a lot more) space”: if you give each of your k hash function a separate bit-table, memory usage grows by a factor of k.