在一组整数S上给出一个完美的散列函数,可以计算在S中包含一个整数,即如果一个整数不在S中,你可以在不读取散列表本身的情况下判断,以及是否为整数在S中,你能不读取哈希表吗?假设我们有一个最小的完美哈希函数。因此,哈希表的大小为n,S的大小为m,n = m。如果这很明显,我道歉。
答案 0 :(得分:0)
不,你不能,因为完美的哈希函数将每个可能的整数映射到索引。
您可以做的是:对于每个密钥,仅存储一些附加信息,例如该密钥的哈希码的最后几位。这样,您可以说(具有可配置的概率;它取决于您存储的数据量)整数是否可能在集合中。这与布隆过滤器基本相同(您可以获得误报,但不会出现假阴性)。