블룸 필터가 효과적으로 다양한 값이 이미 처리 동안 발생했는지 여부를 추적하는 것이 가능하다. 많은 데이터 항목이있는 경우 Bloom 필터는 해시 테이블에서 메모리를 크게 절약 할 수 있습니다. 해시 테이블과 공유하는 Bloom 필터의 주요 기능은 항목이 새 항목이 아닌 경우 항상 "새 항목 아님"이라고 표시하지만 항목이 "새 항목이 아님"으로 표시 될 가능성은 0이 아닙니다 "새로운 때에도.
반대 행동을하는 "Bloom anti-Bloom filter"가 있습니까?
다시 말해, 아이템이 새로운 경우 "신규"라고 말하지만 새로운 것이 아닌 일부 아이템에 대해서는 "신규"라고 말하는 효율적인 데이터 구조가 있습니까?
앞에서 본 모든 항목 (예 : 정렬 된 링크 목록)을 유지하면 첫 번째 요구 사항을 충족하지만 많은 메모리를 사용할 수 있습니다. 편안한 두 번째 요구 사항을 감안할 때 필요하지 않기를 바랍니다.
보다 공식적인 치료를 선호하는 사람들 은 Bloom 필터가 x 가 새로운 것으로 생각하면 , 그렇지 않으면 b ( x ) = 0 , x가 정말로 새로운 경우 n ( x ) = 1 이라고 쓰고 n ( x 그렇지 않으면 ) = 0 입니다.
그런 다음 ; ; ; 일부, .
I는 해달라고 : 않는 함수를 구현하는 효율적인 데이터 구조에 존재하는 일부 ,되도록 ; ; ; ?
편집 : 이 질문은 이전에 /programming/635728 및 /cstheory/6596 과 같이 StackExchange에서 요청 된 것으로 보입니다 . done "에서"일부 비용으로 수행 할 수 있음 "에서" 의 값을 바꾸면 간단합니다 . " "올바른"답변이 무엇인지는 아직 명확하지 않습니다. 무엇 이며 분명한 것은 (Ilmari 카로 넨가 제시 한 하나 같은) 오히려 잘 작동 어떤 종류의 LRU 캐싱 방식은 구현하기 쉽다는 점이다, 내 코드를 실행하는 데 걸리는 시간이 50 % 감소 귀착되었다.