Hash 计算散列函数

Hash 计算散列函数,hash,hashmap,hashtable,Hash,Hashmap,Hashtable,有一个标准的散列函数,我们从键中获取mod来定义地址。也就是说,h(k)=k(mod)p(其中p是一些素数)。这称为除法。 我看到了这种“除法”的一种变体,你首先用素数乘以键,然后取模。例如:h(k)=(k*17)mod 11。 在计算mod之前,将密钥乘以素数(17,37…)的目的是什么??它是为了改善键的分布吗?我认为主要原因是它对函数进行了去线性化,从而h(k+1)!=h(k)+1。。。可能还有其他原因。

有一个标准的散列函数,我们从键中获取mod来定义地址。也就是说,h(k)=k(mod)p(其中p是一些素数)。这称为除法。 我看到了这种“除法”的一种变体,你首先用素数乘以键,然后取模。例如:h(k)=(k*17)mod 11。
在计算mod之前,将密钥乘以素数(17,37…)的目的是什么??它是为了改善键的分布吗?

我认为主要原因是它对函数进行了去线性化,从而
h(k+1)!=h(k)+1。。。可能还有其他原因。