Hash 使用MAD从字符串中提取哈希函数
MAD(乘加除)方法对某些值Hash 使用MAD从字符串中提取哈希函数,hash,Hash,MAD(乘加除)方法对某些值x, h(x)=((ax+b)mod p)mod N 其中,p是大于N的素数,a和b是[1,p-1]范围内的一些随机整数,N是哈希表的大小 如何计算字符串值的哈希值? 我不确定是否应该计算字符串的散列(例如基于位置值),然后使用MAD方法,或者是否有其他方法 我试过什么? 我想实现一个函数inthash(str),它将返回散列值。 我已经编写了inthash(intx,intn),但在这里,我将根据字符串中字符的ASCII值发送一个预先计算的x。我可以想出两种明智的方
x
,h(x)=((ax+b)mod p)mod N
其中,
p
是大于N
的素数,a
和b
是[1,p-1]范围内的一些随机整数,N
是哈希表的大小
如何计算字符串值的哈希值?
我不确定是否应该计算字符串的散列(例如基于位置值),然后使用MAD方法,或者是否有其他方法
我试过什么?
我想实现一个函数inthash(str)
,它将返回散列值。
我已经编写了
inthash(intx,intn)
,但在这里,我将根据字符串中字符的ASCII值发送一个预先计算的x
。我可以想出两种明智的方法来实现这一点
ord
函数),并将h
的求值链接起来,例如,您使用a
或b
的值作为h
的上一个结果
h
的输入,然后必须使用相同的大整数库来实现