为什么我们在Universal Hashing中选择随机散列函数

时间:2015-02-01 18:23:23

标签: algorithm hash

根据Universal Hashing的定义,选择随机散列函数以具有良好的最坏情况。但我无法理解它是如何工作的。

假设如果我选择一些随机Hash函数h,仍然有可能以最坏的元素集结束。

请用简单的词语解释。

我看过视频https://www.youtube.com/watch?v=s7QSM_hlS1U。但很难理解

1 个答案:

答案 0 :(得分:1)

你是对的:使用随机散列函数不会100%阻止你以最坏情况集结束。但是在你提供的讲座中,主要担心的是敌人可能能够预测一个总是屈服于最坏情况的输入。

作为一个例子,他使用了必须为哈希表选择基准的竞争对手。如果不在运行时使用随机散列函数,他就会知道您使用的散列函数,并可以预测哪些键会产生相同的散列值,从而将散列表转换为链表(因为每个键都分配给同一个桶) 。确定性散列函数具有可预测的最坏情况结果的风险,这在对手设置中尤其糟糕。

通过在运行时使用随机散列函数,即使敌人选择了基准,也可以确保没有碰撞。 更具体地说,当你有值x和y(用x!= y)并从m个不同的散列函数H中选择函数h时,则(非常直观地)h(x)= h(y)的概率为AT至少小于1 / m,即1 / m设置上限概率。确定性哈希函数不能为您提供此属性。

另见here