[1. 개요]
[2. 해시 함수 구현]
해시 충돌을 최대한 적게 발생 시키게 하기 위해 K 와 mod 값을 선택해야 하는데
두 값 모두 소수 (prime number) 로 선택하는 편이 좋다고 한다.
- K: 31, 53, 101, 127, 131, 137, ...
- mod: 1e9+7 과 같은 큰 수. (1e9+3, 1e9+9)
# 십만자리 : 1e5+3
# 백만자리 : 1e6+3
특히 K 는 문자열의 상황에 따라 다른데,
- 알파벳 소문자로 구성 된 경우 : 31, 127, 131, ...
- 알파벳 대소문자 + 숫자 로 구성된 경우 : 53, 131, 911, ...
- 그 외, 257, 997, 1009
최소 31 부터 소수 인 값을 선택하면 좋음
특히, 거듭제곱 등의 연산이 발생하기 때문에 overflow 에 유의하도록 한다.
'알고리즘 > 이론' 카테고리의 다른 글
차분 배열 (0) | 2025.05.21 |
---|---|
radix tree (0) | 2025.05.17 |
Convex hull (볼록 껍질) (0) | 2025.01.02 |
네트워크 유량, Dinic 알고리즘 (0) | 2024.12.26 |
이분매칭 (0) | 2023.05.11 |