An algorithm has to store several keys generated by an adversary in a hash table. The adversary is malicious who tries to maximize the number of collisions. Let be the number of keys, be the number of slots in the hash table, and .
Which one of the following is the best hashing strategy to counteract the adversary?
- (A)
Division method, i.e., use the hash function .
- (B)
Multiplication method, i.e., use the hash function , where is a carefully chosen constant.
- (C)
Universal hashing method.
- (D)
If is a prime number, use Division method. Otherwise, use Multiplication method.
