해시함수를 정의할 때, 두 양의 정수를 하나의 유일한 양의 정수로 변경하여 키값으로 사용을 하려고 할 때가 있다. 이 때 사용할 수 있는 것이 캔터 쌍짓기 함수(Cantor Pairing Function)이다.
이것은 다음과 같이 정의된다.
두 정수값 k1, k2를 입력하면 유일한 값이 결과로 나온다.
public int cantorPairing(int k1, int k2) {
return 1/2*(k1 + k2)*(k1 + k2 + 1) + k2;
}
위와 같이 정의할 수 있을 것이다.
댓글