我想了解通用哈希如何工作。它被定义为h(x) = [(a*x + b) mod p] mod m其中a,b - 随机数,m - 散列表的大小,x - 密钥和p - 素数。例如,我有几个不同的钥匙: 92333
23347
20313
而且为了创建一个通用散列函数我一定要到以下几点: Let a = 10, b = 22, p = 313, m = 100
h(92333) = [(10
如果你不熟悉universal hashing,它主要是试图保证少量的碰撞(相反,使用普通的旧模),使用一些相当简单的数学涉及随机性。问题是,它并没有为我工作: size_t hash_modulo(const int value) {
return (size_t) (value % TABLE_SIZE);
}
// prime 491 is used because its