我想了解通用哈希如何工作。它被定義爲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