시퀀스 외에도 세트를 해시할 수도 있습니다. 즉, 순서가 없는 개체 집합입니다. 다음 공식에 따라 계산됩니다.
hash(A) = \(\sum_{a \in A} p^{ord(a)}\) <- 모듈로 모든 것을 계산
여기서 ord는 가능한 모든 객체 중에서 집합의 객체에 절대 서수를 할당하는 함수입니다(예를 들어 객체가 자연수이면 ord(x) = x이고 소문자 라틴 문자이면 ord(& #39;a') = 1, ord('b') = 2 등)
즉, 각 개체에 대해 기본과 같은 값을 이 개체 수의 거듭제곱에 연결하고 전체 세트의 해시를 얻기 위해 이러한 모든 값을 합산합니다. 수식에서 알 수 있듯이 집합에 요소를 추가하거나 제거하면(필요한 값을 더하거나 빼기만 하면) 해시가 쉽게 다시 계산됩니다. 같은 논리, 단일 요소가 추가되거나 제거되지 않고 다른 집합이 있는 경우(그냥 해시를 더하거나 뺍니다).
이미 이해할 수 있듯이 단일 요소는 해시를 계산할 수 있는 크기 1의 집합으로 간주됩니다. 그리고 더 큰 세트는 단순히 이러한 단일 세트의 합집합이며 세트를 결합하여 해시를 추가합니다.
사실 이것은 여전히 동일한 다항식 해시이지만 pm 의 계수 이전에는 다음 값을 가졌습니다. 번호 n - m - 1(여기서 n은 시퀀스의 길이) 아래의 시퀀스 요소의 수이며, 이제 이것은 절대 서수가 m과 같은 세트의 요소 수입니다.
그러한 해싱에서는 충분히 큰 기준(최대 세트 크기보다 큼)을 취하거나 이중 해싱을 사용하여 절대 서수 m을 가진 p개 객체 집합이 절대 서수를 가진 하나의 객체가 있는 집합과 동일한 해시를 갖는 상황을 피해야 합니다. 서수 m+1.