Поиск коллизий в хеш-таблице

Я готовился к выпускному экзамену по структурам данных и наткнулся на вопрос в выпускном экзамене прошлого года.Работая над ним последние три часа, я так и не смог найти способ решить его, кроме как путем проб и ошибок. Вот вопрос:

«Предположим, что размер вашей хэш-таблицы равен 31, константа g также равна 31, и что вы используете следующий хеш-код

int hash = 0;
int n = s.length();
for (int i = 0; i < n; i++)
   hash = g * hash + s.charAt(i);

и что вы используете отдельную цепочку для разрешения коллизий. Перечислите пять различных имена, которые хешируются в одно и то же место в таблице».

Я думаю, что должны быть какие-то трюки, возможно, с использованием оператора по модулю, чтобы решить эту проблему, учитывая, что размер хеш-таблицы равен 31, что совпадает с константой g. Извините, если это звучит так, но я не прошу код или что-то еще, просто некоторые мысли/подсказки по вопросу. Любой комментарий очень ценится. Спасибо

5
задан James Durbin 17 May 2012 в 02:59
поделиться