问题标签 [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 投票
3 回答
471 浏览

java - 双散列常数 5?

我发现了大量的双散列示例,所有示例都告诉我,当你第二次散列时,你必须使用 %5。

我的问题是为什么是5?是您始终使用 5 的协议还是它是如何工作的?

一个例子:https ://www.cs.washington.edu/education/courses/326/00wi/handouts/lecture16/sld025.htm

0 投票
2 回答
6067 浏览

c++ - 我如何编写用于字符串的双哈希实现?

大家好,第一次来这里,但我想首先问一下我对双散列的理解是否正确。

双散列首先实现一个散列函数,然后检查该点是否打开。如果当前点未打开,则使用第二个散列函数确定另一个点,然后将其乘以当前尝试,然后将其添加到由第一个散列算法确定的索引点。

我现在的代码是:

我刚刚意识到我没有包含我的第二个哈希函数

它可能看起来不像,但实际上 tsize 被正确调用。

0 投票
1 回答
519 浏览

algorithm - 我对这个双重哈希是否正确?

我正在学习 Double Hash,但我很难理解它是如何工作的。我做了一个例子,但我不知道它是对还是错。如果有人可以帮助我,那就太好了。这是输入:


米 = 13


k = { 5, 14, 29, 25, 17, 21, 18, 32, 20, 9, 15, 27 }


h1(k) = k mod 13


h2(k) = 1 + (k mod 11)

我的结果

0 投票
1 回答
1009 浏览

java - 如何确定具有双重哈希的 Hashtable 何时已满?

我正在实现一个使用双重哈希的哈希表。但是,我的 insert(element) 方法有问题。它现在基本上执行以下操作:

  1. 检查数组中计算的位置是否为空。如果是这样,插入元素,我们就完成了
  2. 如果该位置被另一个元素阻塞,我们计算新的哈希值并从 1 重新开始。(递归)。

问题是该算法永远不会检测到哈希表何时已满。我可以跟踪访问位置的数量并将该数字与数组的大小进行比较以解决此问题。

但是,有没有更简洁的方法来做到这一点。就像,是否有可能从我的双重哈希的深度推断出数组必须是满的(数学上)?

0 投票
4 回答
413 浏览

java - 双重哈希Java的问题

我在大学的一个项目中遇到了问题,我们必须在一个类中编写一个双哈希方法,它返回一个双哈希字符串对象。考虑到 Java 中有一个内置的 hashCode() 方法,我认为这会相对简单,但是当您第二次迭代 hashCode 时,它​​似乎返回完全相同的值。例如:

StringHashCode.java:

拼写.java

输出摘录:

Dict 是一个包含单词列表的文件,而 class 是 out 讲师创建的一个类,它返回下一个字符串并检查是否有另一个单词。

0 投票
3 回答
1473 浏览

java - 双散列中的重新散列也会改变主散列函数吗?

当您在双重哈希中与主哈希函数发生冲突时,您使用辅助哈希函数。但是如果你也有冲突,那么你必须重新哈希,所以你将表大小加倍并选择最接近的素数作为新的表大小。这也会改变你的主要散列函数吗?例如,如果您的主散列函数是 key mod tableSize 并且您的 tableSize 最初是 11,现在是 23,那么它也会改变吗?因为如果哈希函数保持不变,您仍然会在相同的位置发生冲突。

0 投票
1 回答
271 浏览

c - 哈希表:碰撞时的双重探测

我目前正在研究哈希表,对双重哈希有点困惑。让我首先从我得到的信息开始。

您首先创建一个包含所有数据的数组,并按键对它们进行排序。我使用公式 K % size 在数组中找到键所在的位置。如果您将密钥提交到已经存在密钥的位置,则称为冲突。这就是双倍的用武之地。我使用公式 max(1,(K/size) % size) 来获得一个将从该位置递减的数字。

所以我想出了这些功能:

所以我使用这两个公式来移动键。现在我很困惑如果我递减并降落在另一个已经放置了密钥的位置上会发生什么。在找到位置之前,我会再次减少那么多吗?

0 投票
1 回答
378 浏览

java - 双散列表的get方法出错

我有下面的方法来获取在双散列类中输入的键的值。运行后一直说有错误。

首先,我必须在哈希表中插入一个新的名称和值,如果之后我有示例,则可以正常工作:

但如果我有:

它说有一个错误。这意味着该方法不接受包含空格等的整行字符串,但它只接受单个字符串。Netbeans 说错误在于这一行:

谁能帮我?

0 投票
2 回答
11510 浏览

java - 双重哈希java

我很难使用双重哈希。完成此代码以加倍哈希的任何帮助都会很棒。

0 投票
1 回答
561 浏览

java - Trying to double hash

I am trying to double hash and I am confused on how to do it. I think I am on the right track but this is giving a NullPointerException on table[index].value=value;.

Any help would be great.