순전히 기능적인 설정에서 낮은 단독 링크 목록을 고려하십시오. 그 칭찬은 산 정상에서 부른 노래이며 계속 부를 것입니다. 여기에서 나는 많은 강점 중 하나를 다루고 그것이 나무를 기반으로 한 순전히 기능적 시퀀스의 광범위한 클래스로 어떻게 확장 될 수 있는지에 대한 질문을 다룰 것입니다.
문제는 다음과 같습니다. 강력한 해싱을 통해 O (1) 시간에서 거의 일정한 구조적 동등성을 테스트하려고합니다. 해시 함수가 구조적으로 재귀 적이면 (예 : 해시 (x : xs) = mix x (해시 xs)), 목록에 해시 값을 투명하게 캐시하고 요소가 기존 목록에 구성 될 때 O (1) 시간에 업데이트 할 수 있습니다. . 해시 목록에 대한 대부분의 알고리즘은 구조적으로 재귀 적이므로이 방법은 실제로 유용하게 사용할 수 있습니다.
그러나 단일 연결 목록 대신 O (log n) 시간에서 길이 O (n)의 두 시퀀스 연결을 지원하는 트리 기반 시퀀스가 있다고 가정합니다. 여기서 해시 캐싱이 작동하려면 트리가 동일한 선형 시퀀스를 나타내는 자유도가 존중되도록 해시 믹싱 함수가 연관되어야합니다. 믹서는 서브 트리의 해시 값을 가져 와서 전체 트리의 해시 값을 계산해야합니다.
6 개월 전에이 문제를 조사하고 조사하는 데 하루를 보냈습니다. 자료 구조에 관한 문헌에는 관심이없는 것으로 보인다. 암호화에서 Tillich-Zemor 해싱 알고리즘을 발견했습니다. 비트 0과 1은 Galois 필드에 항목이있는 하위 대수의 두 생성기에 해당하는 2x2 행렬 곱셈 (연관 적)에 의존합니다.
제 질문은 무엇을 놓쳤습니까? 검색에서 찾지 못한 암호화 및 데이터 구조에 관한 문헌 모두에 관련 논문이 있어야합니다. 이 문제에 대한 의견과 탐험 가능한 장소는 대단히 감사하겠습니다.
편집 : 나는 스펙트럼의 부드럽고 끝이 강한 끝 에서이 질문에 관심이 있습니다. 더 부드러운면에서는 충돌을 피해야하지만 치명적이지는 않은 해시 테이블에 사용할 수 있습니다. 더 강한면에서는 평등 테스트에 사용할 수 있습니다.