stringHash1 を使用すると同じ値にハッシュされ、stringHash2 を使用すると異なる値にハッシュされる 2 つの単語の例を挙げてください。
私の答えは車とカメラです。最初の 2 文字は同じ ascii 値ですが、不明なのでしょうか?
int stringHash1(char * str)
{
int i;
int r = 0;
for (i = 0; str[i] != '\0'; i++)
r += str[i];
return r;
}
/*the second hashing function you can use*/
int stringHash2(char * str)
{
int i;
int r = 0;
for (i = 0; str[i] != '\0'; i++)
r += (i+1) * str[i];
return r;
}