字符串的成对独立散列函数?

时间:2012-12-07 18:04:29

标签: algorithm math data-structures hash

许多随机算法和数据结构(例如Count-Min Sketch)需要具有成对独立属性的哈希函数。直观地说,这意味着与特定元素的哈希冲突的概率很小,即使该元素的哈希函数的输出是已知的。

我发现了许多基于随机线性函数的固定长度比特向量的成对独立散列函数的描述。但是,我还没有看到任何字符串的成对独立散列函数的例子。

字符串是否存在成对独立散列函数的族?

2 个答案:

答案 0 :(得分:1)

我很确定它们存在,但是你的问题有一些量度理论的微妙之处。你可能最好不要问mathoverflow。我对这些东西非常生疏,但我想我可以证明,即使它们确实存在,你实际上也不需要它。

首先,您需要对字符串进行概率测量,并且任何此类度量必然与非常不同于“uniform”的任何概念。 (它是一个可数集合,所有可数集合上的sigma-algebras只是将元素集合在一起并为每个集合分配概率。你会希望所有的集合都是单例。)

现在,如果你只提供有限多个字符串正概率,那么你就回到了有限的情况。因此,现在让我们忽略它,并假设,对于任何epsilon> 0,你可以找到一个概率严格在0和epsilon之间的字符串。

假设我们限制哈希函数将字符串映射到{0,1}。

的情况

你的哈希函数族也需要是无限的,你要把它作为哈希函数的概率空间来讨论。如果你有一组H具有正概率的散列函数,那么每个字符串都被映射到H和(不同)H元素的0和1。特别是,H的单个元素没有正概率。所以H必须是无数的,你突然遇到困难的可表示性问题。

如果没有忘记测量理论的人会在这里说话,我会很高兴。

答案 1 :(得分:0)

没有有限长度的种子和非零有界长度的输出。

对于这种效应的一个相当粗略的论证是,对于有限的散列函数族H,考虑从元素x到元组的映射f,给出H中每h的h(x)。因为每个h的鳕鱼币和因此f是有限的,H中的所有h都存在两个相同方式映射的字符串,假设存在至少两个可能的散列值,则与成对独立性相矛盾。