这是我在这里的第一个主题,我想问你几个关于整数散列的问题。 通用哈希算法应该使用它:
equation =
((a*x+b)mod p) mod m
a=random number from 1 to p-1
b=random number from 0 to p-1
x= the Key
p= a prime number >=m
m=the size of the array
我知道我要哈希的数字是1-2969。 但是我无法理解如何使用这个等式来尽可能地减少碰撞。 在a和b是随机的时候,我无能为力。 我的问题是,如果我有多个选择,我应该如何选择素数,我可以使用的素数范围是2到4999。 我试图选择与功能要求相对应的第一个可用但有时它可以返回负数。我在谷歌和Stackoverflow上搜索过但我无法弄清楚我做错了什么。
我在C编码。另外,我只能使用通用哈希。
感谢您的时间。