我必须开发一个对三个键都适用的功能:车辆牌照编号,签发日期和姓氏。我的代码可以在issue_date和last_name上正常工作,但是会导致许可证号发生很多冲突。示例license_no L1-0015338
。
我是哈希函数的新手,不知道要使用哪种哈希函数。
int hash3(char* s, int max)
{
int prime = 20000;
char* c;
unsigned long number, column=1, hash, i;
for (i = hash = 0; *s; i++, s++)
{
column *= (*s);
prime = nextPrime(prime);
hash = (((hash << 5) + hash) ^ column) * prime;
}
return (int)((hash) % max);
}