stper** pages;
int tableSize;
struct Person{
string name;
int age;
string homeTown;
};
void fonk1 (int numberOfBuckets)
{
pages = new stper*[numberOfBuckets]();
tableSize = numberOfBuckets;
}
int hashPerson(Person& person)
{
int hashVal = 0;
for (int i=0; i < (person.getName()).length() ; i++)
hashVal = 37*hashVal + (person.getName())[i];
for (int i=0; i < (person.getHomeTown()).length() ; i++)
hashVal = 37*hashVal + (person.getHomeTown())[i];
hashVal+= person.getAge();
hashVal %= tableSize;
if(hashVal < 0)
hashVal += tableSize;
return hashVal;
}
みなさん、こんにちは。私はハッシュが初めてです。私のハッシュ関数は上記の hashPerson 関数にあります。ご覧のとおり、3 つのキーがあります。私の関数はハッシュに適したアルゴリズムですか?どうすれば関数を改善し、衝突の数を減らすことができますか? (構文ミスがあっても無視してください)