변경되지 않는 큰 정적 바이너리 (10GB)가 있습니다.다른 문자열에 나타나는 문자열의 수
작은 문자열 (각각 15 바이트 이하)을 입력 한 다음 가장 빈번한 문자열을 결정할 수 있기를 원합니다.
사실이 바이너리 전체를 검색하지 않고서는이 값을 정확하게 결정할 수 없다는 것을 알고 있으므로 근사치가 될 것입니다.
트리/해시 테이블을 작성하는 것은 대략 256^15 바이트가 필요하기 때문에 가능하지 않습니다.
이 작업에는 약 100GB의 디스크 공간과 8GB의 RAM이 있지만 실제로 파일을 넘기지 않고이 작업을 수행하는 방법을 찾을 수 없습니다.
나는 큰 바이너리를 준비하기 위해 많은 시간을 가지고있다. 그리고 나서 나는 가장 빈번한 문자열이 무엇인지를 여러 번 결정할 필요가있다.
아이디어가 있으십니까?
감사합니다. 다니엘.
: 당신이 스토리지를 감당할 수
정말 근사값을 원하십니까? 어떤 종류의 파일인지에 따라 불완전한 샘플링은 오해의 소지가 있습니다. – Thilo
저장 용량을 확보 할 수있는만큼 많은 접두사가있는 해시 테이블을 만들 수 있습니까? 더 이상 나타나지 않는 나무를자를 수 있습니다. 나는 그것을 "근사치"라고 부르지 않을 것이지만, "상한"이 될 수 있으며, 나타나지 않는 문자열을 탐지 할 수 있습니다. – Thilo
매번 약 20,000 번 알고리즘을 실행하여 약 15 개의 문자열 중에서 하나를 선택해야합니다 (이상적인 문자열 선택). (큰 10GB 파일은 항상 동일하게 유지됩니다). 해시 테이블 및 접두어 - 나는 그것에 대해 생각했습니다. 이 질문에 대한 답변으로 답변을 드리겠습니다 – Avenger