线性探测中不同探针序列的数量

Posted

技术标签:

【中文标题】线性探测中不同探针序列的数量【英文标题】: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 有什么变化? 【参考方案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

以上是关于线性探测中不同探针序列的数量的主要内容,如果未能解决你的问题,请参考以下文章

请问dtrace启用了哪些探针?

snv基因突变是啥意思

NCBI获取基因序列以及不同转录本序列

数据结构解决哈希冲突方法回顾

phpstudy探针是啥?

哈希表