node universal hash function
1.0.0
稳定性:1-实验
通用哈希功能。
npm install universal-hash-function
如果恶意对手选择通过某些固定的哈希功能将键进行哈希,则对手可以选择所有哈希的n键,这些键将所有哈希都达到相同的插槽,从而产生O(n)的平均检索时间。任何固定的哈希函数都容易受到如此可怕的最坏情况。改善情况的唯一有效方法是以独立于实际要存储的密钥的方式随机选择哈希功能。无论对手选择哪种钥匙,这种称为通用哈希的方法都可以平均产生良好的性能。 http://mitpress.mit.edu/books/introduction-algorithms
prime , numberOfHashSlots和someKey都是整数。
var uhf = require ( 'universal-hash-function' ) ;
// prime should be such that the greatest integer value of someKey should be
// less than prime
// uhf(prime, numberOfHashSlots);
var hashFunc1 = uhf ( 17 , 6 ) ;
var hashFunc2 = uhf ( 17 , 6 ) ;
var hashFunc3 = uhf ( 17 , 6 ) ;
// hashFunc(someKey)
hashFunc1 ( 0 ) ; // -> 2
hashFunc2 ( 0 ) ; // -> 1
hashFunc3 ( 0 ) ; // -> 5
hashFunc1 ( 1 ) ; // -> 3
hashFunc2 ( 1 ) ; // -> 5
hashFunc3 ( 1 ) ; // -> 1
hashFunc1 ( 2 ) ; // -> 5
hashFunc2 ( 2 ) ; // -> 2
hashFunc3 ( 2 ) ; // -> 3
// etc...