一个布隆过滤器能够有效地跟踪是否处理过程中已经遇到的各种值。当有许多数据项时,布隆过滤器可以节省散列表上的大量内存。与哈希表共享的Bloom筛选器的主要功能是,如果某项不是新项,则始终显示“ not new”,但将项标记为“ not new”的可能性不为零。即使是新的。
是否有行为相反的“抗布鲁姆过滤器”?
换句话说:是否存在一个有效的数据结构,如果某项是新项,它会显示“ new”,但对于某些非新项也可能会显示“ new”?
保留所有先前看到的项(例如,在排序的链表中)可以满足第一个要求,但可能会占用大量内存。考虑到第二个要求放宽,我希望这也是不必要的。
对于那些更喜欢正式对待的人,如果Bloom过滤器认为是新的,则写,否则,写,如果确实是新的,写,而否则。
然后 ; ; ; ,对于某些。
我在问:是否存在有效的数据结构,实现了函数且其值,因此 ; ; ; ?P - [R [ b '(X )= 1 | n (x )= 1 ] = 1
编辑:似乎以前在StackExchange上已经问过这个问题,如/programming/635728和/cstheory/6596,其中包含“无法通过“可以花一些钱来完成”到“通过反转的值来做到这一点是微不足道的”。我还不清楚“正确”的答案是什么。什么是明确的是,某种类型的LRU缓存机制(如ILMARI Karonen建议的一个)的作品相当好,很容易实现,并且获得在运行我的代码所花费的时间减少了50%。