【问题标题】:Why do we select random hash function in Universal Hashing为什么我们在 Universal Hashing 中选择随机散列函数
【发布时间】:2015-02-01 18:23:23
【问题描述】:

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

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

请用简单的话解释一下。

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

【问题讨论】:

  • 是的,有可能,但不太可能。您拥有的保证是概率性的(即预期值或“高概率”界限)
  • @NiklasB。任何直觉为什么它不太可能。如果函数本身是随机选择的,效果如何。
  • 拥有最差 Set 的概率随着可供选择的不同散列函数的数量而降低。

标签: algorithm hash


【解决方案1】:

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

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

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

另见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2020-04-13
    • 2012-09-09
    • 2014-03-27
    • 2016-05-02
    相关资源
    最近更新 更多