【问题标题】:Number of distinct probe sequences in linear probing线性探测中不同探针序列的数量
【发布时间】:2018-01-12 04:16:45
【问题描述】:

根据 Cormen 的书,如果哈希函数为

,则线性探测中可能的探测序列数

h(k,i) =( h' (k) + i) % m 是 m

如果 h'(k) = k 模 5 和 m = 10,那么我们怎么会有 10 个不同的探针序列?

初始探测由h'(k)决定,所以探测序列的数量应该受h'(k)限制,应该是5对吧?

【问题讨论】:

  • i 有什么变化?

标签: algorithm data-structures


【解决方案1】:

CLRS 说:

给定一个普通的散列函数h'U -> {0, 1, ... , m - 1},其中 我们将其称为辅助散列函数,该方法 线性探测使用散列函数

h(k, i) = (h'(k)+i) mod m

对于 i = 0,1, ..., m-1.

Cormen 的意思是 h'surjective。否则,以下内容将不正确。

因为初始探针决定了整个探针序列,所以只有m个不同的探针序列

【讨论】:

  • 虽然他确实意味着,但引用的文字并没有这个。
  • @Henry 你是对的,在这种情况下措辞并不准确。也许,即使是only这个词也可能会有不同的理解。
  • 我们获得 m 个不同探针序列的唯一方法是当 h'(k) 也是 k mod m 对吗?对不起,我不明白这个。
  • @RajeshR h' 可以是产生集合 {1, ..., m-1} 的任何散列函数。从 k mod m 开始,它取决于 m 的特定值,但是是的,可能是这样。
  • @RajeshR 看看this example
猜你喜欢
  • 2012-08-14
  • 2013-06-27
  • 2011-01-21
  • 2021-01-28
  • 1970-01-01
  • 2019-05-16
  • 2018-10-30
  • 2013-03-25
  • 2015-08-21
相关资源
最近更新 更多