问题标签 [double-hashing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
666 浏览

vb.net - vb.net 中的双哈希表或双哈希哈希表

我试图在 vb.net 中创建一个双散列哈希表,但我遇到了一些我不知道如何解决的错误。希望你们能帮助我。我遇到的问题是我有 dbnull.value 或 mod= 我在编辑器中遇到错误,我不知道如何修复它们。将此代码放入 vb 以了解我的意思。这是代码:

结束类

0 投票
1 回答
2478 浏览

c++ - Hashtables:当第二个哈希函数返回表大小的倍数时进行双重哈希

我正在 C++ 中实现一个 HashTable,通过双散列使用开放寻址。

我了解双重哈希背后的基本原理是:

我想我已经正确地实现了这部分。这是一个家庭作业,这是班级的政策,我不能就任何特定的代码块征求意见,所以你必须在这方面相信我。

似乎给我造成问题的是,有时,某些键在受到第二个哈希函数的影响时,会返回一个值,该值是(主要)表大小的倍数。在这些情况下,探测序列中的所有索引都是相同的。例如,当:

探测顺序为:

等等。

我错过了什么?

0 投票
1 回答
2268 浏览

java - 散列用于散列表的字符串(双散列)

我正在尝试使用双散列将字符串键散列到散列表中。我做了类似的事情:

主要部分是 . 之后的第 1 3 行do。我可以说如果我使用Double Hashing,它应该消除碰撞的可能性吗?size是我的哈希表的唯一键的总可能值

0 投票
2 回答
1084 浏览

c++ - 散列(没有重新散列的双重散列)

这是问题:

通过双重哈希使用开放寻址,主要的哈希函数是, hi(x) = (hash(x) + f(i)) mod Mwherehash(x) = x mod M和.f(i) = i ∗ hash2(x)hash2(x) = 13 − (x mod 7)

我需要插入键 27、22、16、26、47、12、42、3(按此顺序)。套装大小为 10

我对插入 26 感到困惑,因为它是双重碰撞......谁能解释一下如何做以及发生了什么?

0 投票
1 回答
400 浏览

hash - 确定给定键的双散列函数 -> 散列位置值

给定一堆键及其散列值,我如何确定双散列函数?

更新

我认为h(x) = k % 13 + 1

0 投票
1 回答
961 浏览

algorithm - 双散列详细信息

我目前正在为我的算法课复习期末考试,我在练习测试中遇到了一些我不确定的问题。任何帮助,将不胜感激!

以下哪项关于双散列实现的探测序列不正确?

A. 两个键可以有相同的探测序列

B. 哈希表中的所有槽出现在每个探测序列中

C. 探测序列的元素是哈希表的可能键

D. 一个键的探测顺序不能改变

我相信 A、B 和 D 都是正确的,所以我认为 C 是正确的答案。


双重哈希的最坏情况是:

A. 所有存储的密钥都具有相同的 h1。

B. 所有存储的密钥都具有相同的 h2。

C. 所有存储的密钥具有相同的 h1 和 h2。

D. 插入每把钥匙都需要探测所有先前插入的钥匙的插槽

我相信这个答案会是 C。我不完全确定这个答案,所以一个解释会很好。

0 投票
2 回答
5026 浏览

data-structures - 如果双哈希函数也失败了怎么办

考虑使用带有散列函数的开放寻址将键 10、22、31、9、15、28、62、88 插入到长度为 m = 11 的散列表中h(k) = k mod m。说明使用 h2(k) = 1 + (k mod(m-1)) 的双重散列插入这些键的结果。

以下是我的方法。

好的,当尝试将密钥 9 放入哈希表时,问题就来了。

h(9) = 9 mod 11,即 9。我不能放 9,因为 9 已经消失了。然后我尝试给定 h2(9) = 1 + (9 mod (11-1)) 的双哈希函数,它是 10,它又消失了。所以我仍然不能将 9 放入哈希表中。在这种情况下我该怎么办。

0 投票
1 回答
284 浏览

hashtable - 用双散列函数填满整个开放地址苛刻表

双重哈希能否在基于质数的开放地址哈希中填充哈希表中的所有条目?

0 投票
1 回答
2577 浏览

algorithm - 双散列给出一个大于表大小的数字

我有一个大小为 11 的哈希表,以数组的形式实现。我正在尝试使用双哈希技术;我已经完成了我的大部分数字。我的哈希函数如下:

这给了我h(k,i) = k mod 11 + i(k * 3 mod 4)i = 0, 1, 2, 3, ...

我已经填充了插槽 0、1、4、8、9 和 10。我正在尝试插入 19。这是我对 19 进行哈希处理的结果:

我该怎么办?

另外,当他们说“让表有 11 个插槽”时,这是否意味着哈希表有从 0 到 10 的可用插槽?

0 投票
2 回答
759 浏览

java - 链式哈希 VS 双重探测

我正在尝试比较链接和双重探测。我需要在表大小 100 中插入 40 个整数,当我用 nanotime(在 java 中)测量时间时,我发现 Double 更快。那是因为在链接的插入方法中,我每次都创建 LinkedListEntry,它是添加时间。Chaining 怎么会比 Double Probing 更快呢?(这就是我在维基百科上看到的)

谢谢!!

这是链接的代码:

这是双重探测的相关代码:

这样,在 Double 中的插入比 Chaining 更快。我该如何解决?