Java 双散列常数5?
我发现了大量的双哈希示例。所有示例都告诉我,在第二次哈希时必须使用%5 我的问题是为什么是5?这是一个协议,你总是使用5或如何工作Java 双散列常数5?,java,hash,hashcode,double-hashing,Java,Hash,Hashcode,Double Hashing,我发现了大量的双哈希示例。所有示例都告诉我,在第二次哈希时必须使用%5 我的问题是为什么是5?这是一个协议,你总是使用5或如何工作 一个例子:否。第二个哈希函数可以是您想要的任何函数。理想情况下,它应该有均等的机会到达哈希数组的每个单元格 我的猜测是,您没有从其他来源查找任何双重哈希的示例。为了简单起见,您使用的源决定多次使用%5 不。第二个散列函数可以是您想要的任何函数。理想情况下,它应该有均等的机会到达哈希数组的每个单元格 我的猜测是,您没有从其他来源查找任何双重哈希的示例。为了简单起见,您
一个例子:否。第二个哈希函数可以是您想要的任何函数。理想情况下,它应该有均等的机会到达哈希数组的每个单元格
我的猜测是,您没有从其他来源查找任何双重哈希的示例。为了简单起见,您使用的源决定多次使用
%5
不。第二个散列函数可以是您想要的任何函数。理想情况下,它应该有均等的机会到达哈希数组的每个单元格
我的猜测是,您没有从其他来源查找任何双重哈希的示例。为了简单起见,您使用的源决定多次使用
%5
您并不总是使用5,甚至也不总是使用%
在您的示例中,%7和%5是散列函数。然而,在现实中,它们可能是完全不同的功能
本例使用%5,因为它对于本例来说足够简单。唯一真正的要求是这两个功能是独立的
请参阅。您并不总是使用5,甚至也不总是使用% 在您的示例中,%7和%5是散列函数。然而,在现实中,它们可能是完全不同的功能 本例使用%5,因为它对于本例来说足够简单。唯一真正的要求是这两个功能是独立的
请参阅。在有N个位置的哈希表中,使用两个独立的哈希函数h1(key)和h2(key),然后使用探测序列 h1%N,(h1+h2)%N,(h1+2*h2)%N,(h1+3*h2)%N 您需要确保h2和N的最大公约数为1,否则无法到达表中的所有位置 有几种方案可以实现这一点,例如:
- 选择N作为素数,让h2在区间[1,N-1]中给出一个结果
- 选择N作为2的幂,让h2在区间[1,N-1]中给出一个奇数
- 选择N作为素数,让h2在区间[1,N-1]中给出一个结果
- 选择N作为2的幂,让h2在区间[1,N-1]中给出一个奇数
键
。您如何知道第二个哈希将能够应用于每个单元格?这完全取决于您将什么用作键
。N是什么?你能解释一下这个例子吗?N是哈希表的大小,即数组元素的数量。在你在问题N=7中提到的例子中,N是什么?你能解释一下这个例子吗?N是哈希表的大小,即数组元素的数量。在您在问题N=7中提到的示例中。