Microsoft in their benevolence toward all human kind shares this information with us:
http://research.microsoft.com/en-us/um/people/hoppe/perfecthash.pdfThe idea is to create a hash function that has an additional user defined jitter table that you can use to prevent collisions in a hash table, and further you can use it to create a prefect hash table, where each slot in the hash table contains exactly one data item, ie there are no empty slots and no collisions.
My insight is that you could replace the jitter table with a few Bloom filters, eg. b1(x),b2(x),b3(x)
Hence the resulting hash function would be H(x)=h(x)+b1(x)+2*b2(x)+4*b3(x)
That would be a lot easier to program and perhaps better than the greedy algorithm microsoft use to create the jitter table.
I don't have the 3 or 4 days I would require to test my idea, so I just throw it out into internet space.