Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 구조의 곱셈에 의한 해싱


여기에서는 곱셈 방법을 사용한 해싱에 대해 설명합니다. 이를 위해 해시 함수 −

를 사용합니다.
ℎ(𝑥) = ⌊𝑚𝑥𝐴⌋ 𝑚𝑜𝑑 𝑚

여기서 A는 실수 상수입니다. 이 방법의 장점은 m 값이 그렇게 중요하지 않다는 것입니다. m을 2의 거듭제곱으로 취할 수도 있습니다. A의 값은 해시 함수를 제공하지만 A의 일부 값은 다른 값보다 낫습니다.

Knuth에 따르면 A에 대한 황금 비율을 사용할 수 있으므로 A는 다음과 같습니다.

$$A=\frac{\sqrt5-1}{2}=0.61803398$$

물론 A에 대해 어떤 값이 선택되든 상관없습니다. 비둘기집 원리는 u ≥ nm이면 하나의 해시 값 i와 크기 n의 일부 S ⊆ U가 있음을 의미하므로 모든 x에 대해 h(x) =i가 됩니다. S.

따라서 곱셈에 의한 최악의 해싱은 나눗셈에 의한 해싱만큼 나쁘다고 말할 수 있습니다.