2008-08-19 3 views
12

(곱셈) 해시 함수에 사용할 승수를 선택하는 데 대한 조언이나 규칙이 있습니까? 이 함수는 문자열의 해시 값을 계산합니다.(문자열) 해시 함수에 대한 승수 선택

+24

다음 페이지는 효율적이고 최소한의 충돌을 보이는 범용 해시 함수의 여러 구현을 포함합니다. http://partow.net/programming/hashfunctions/index.html –

답변

3

당신은 당신의 세트의 크기에 비례하여 뭔가를 사용하고 싶습니다. 그런 식으로 루프를 돌릴 때 방금 시도한 숫자가 끝나지 않게됩니다.

1

역사적으로 33은 대중적인 선택처럼 보입니다. 그리고 그것은 꽤 잘 작동하는 경향이 있습니다. 아무도 왜 그런지 알지 못합니다. 자세한 내용은 look here

2

최근에 해시 함수에 대한 동료와 흥미로운 토론을 가졌습니다. 우리의 결론은 다음과 같습니다 :

표준 언어로 제공되는 기본 구현보다 충돌을 최소화하는 좋은 해시 함수를 작성해야한다면 수학에 고급 학위가 필요합니다.

사용자 지정 해시 기능이 응용 프로그램의 성능을 현저하게 향상시킬 응용 프로그램을 작성하는 경우, 귀하는 Google이며 충분한 수학 박사 학위를 취득해야합니다.

귀하의 질문에 직접 답변 드려 죄송합니다. 결론은 실제로 String에 대한 자체 해시 함수를 작성할 필요가 없다는 것입니다. 어떤 언어로 작업하고 있습니까? "충분히 좋은"해시 코드를 계산하는 쉬운 방법이 있다고 생각합니다.