我正在寻找一组H(。)和关系R(。,。)的哈希函数,以便如果A包含在B中,则R(H(A),H(B))。当然,R(。,。)必须易于验证(恒定时间),而H(A)应该以线性时间计算。
H和R的一个示例是:
- ,其中k是固定整数,h(x)是整数上的哈希函数。
- R(H(A),H(B))=((H(A)&H(B))== H(A))
还有其他好的例子吗?(很难定义好,但是从直觉上来说,如果R(H(A),H(B)),那么b中会包含whp A)。
以后编辑:
- 我正在寻找一系列哈希函数。我有很多套;每组3-8个元素;其中90%具有3或4个元素。在这种情况下,我给出的示例哈希函数分布不佳。
- H(。)(在我的示例中为k)的位数应较小(即H(。)必须为整数或长整数)。
- R的一个不错的特性是,如果H(。)具有k位,则对于(3 ^ k-2 ^ k)/ 4 ^ k对,即R(。,。)为true。几双。
- 布隆过滤器特别适合大型设备。我尝试使用BF解决此问题,但最佳结果只有一个功能。
(来自stackoverflow的交叉报道,我没有收到足够好的答案)
“ whp”超过了什么?您是否假设您的输入来自某个分布?
—
Jukka Suomela 2010年
您是否真的在寻找一个固定的哈希函数而不是哈希函数系列?
—
Jukka Suomela 2010年
@Jukka:我认为他的意思是如果R(H(A),H(B)),那么我们很有可能得出A是B的子集的可能性。该概率接管了A和B的随机选择,内部抛硬币H和R(如果有)。
—
MS Dousti
我正在寻找一系列哈希函数。我的集合通常很小(每个3-8个元素;其中90%具有3或4个元素),所以我给出的示例哈希函数分布得不太好。
—
亚历山德鲁
R的一个不错的特性是,如果H(。)具有n位,则对于(3 ^ n-2 ^ n)/ 4 ^ n对,即,R(。,。)为true。几双。
—
亚历山德鲁