일반적으로 해시의 목표는 연속 함수를 개별 함수로 변환하는 것입니다. 입력의 작은 변화로 인해 출력이 크게 변경되어야합니다. 그러나 비슷한 입력에 대해 유사한 (그러나 여전히 다른) 해시를 반환하는 해시 알고리즘이 있습니까?해싱 유사성
(이것의 사용의 예는 두 개의 파일이 유사성에 대한 자신의 해시를 확인하여 "유사"여부를 확인하는 것입니다. 물론, 약간의 오류가 항상 허용됩니다.)
일반적으로 해시의 목표는 연속 함수를 개별 함수로 변환하는 것입니다. 입력의 작은 변화로 인해 출력이 크게 변경되어야합니다. 그러나 비슷한 입력에 대해 유사한 (그러나 여전히 다른) 해시를 반환하는 해시 알고리즘이 있습니까?해싱 유사성
(이것의 사용의 예는 두 개의 파일이 유사성에 대한 자신의 해시를 확인하여 "유사"여부를 확인하는 것입니다. 물론, 약간의 오류가 항상 허용됩니다.)
봐 Locality Sensitive Hashing (LSH)에서 . 그것은 예를 들어 주어진 것 근처에서 많은 수의 점들을 빠르게 찾는 확률 적 방법입니다.
+1 정확히 내가 뭘 찾고 있었는지 ... 내가 검색 할 용어를 몰랐다; 감사! :) – Mehrdad
유사하거나 다른 당신의 목적이 얼마나, 당신은 또한 거리 순열 사용 할 수 있습니다 알려주는 거리 함수 감안할 때 : http://obsearch.net
: 후자의 접근 방식의 구현을 위해 http://portal.acm.org/citation.cfm?id=1638180: http://www.computer.org/portal/web/csdl/doi/10.1109/TPAMI.2007.70815 또는 스케치를
"비슷한"을 어떻게 정의합니까? – thkala
동일한 순서로 대략 동일한 길이와 거의 동일한 데이터의 두 스트림은 유사한 것으로 간주됩니다. ("이 둘은 유사합니까?"라는 말은 부울이 아니라 일종의 수차 평가 시스템으로 말할 필요가 없습니다. 예를 들어, [1, 2, 3, 4]는 더 유사 할 수 있습니다 to [1, 2, 3] to [4,3,2,1] ...) – Mehrdad
해시 함수의 전체적인 점은 입력의 단일 비트의 변경이 출력의 모든 * 비트를 변경합니다. – Pointy