node universal hash function
1.0.0
안정성 : 1- 실험
범용 해시 기능.
npm install universal-hash-function
악의적 인 대적이 일부 고정 해시 함수에 의해 해시 될 키를 선택한다면, 적대는 모든 해시를 동일한 슬롯의 N 키를 선택하여 O (n) 의 평균 검색 시간을 산출 할 수 있습니다. 고정 된 해시 기능은 그러한 끔찍한 최악의 행동에 취약합니다. 상황을 개선하는 유일한 효과적인 방법은 실제로 저장 될 키와 무관하게 해시 함수를 무작위로 선택하는 것입니다. Universal Hashing이라는이 접근법은 적대가 어떤 키를 선택하든 평균적으로 좋은 성능을 얻을 수 있습니다. 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...