Определение функции двойного хеширования по заданной клавише -> значения хеш-местоположения - PullRequest
2 голосов
/ 22 ноября 2011

Учитывая кучу ключей и их хэшированные значения, как я могу определить функцию двойного хэша?

UPDATE

Я думаю h(x) = k % 13 + 1

1 Ответ

0 голосов
/ 10 декабря 2011
h(x) = (x+1) % 13

то, что у вас было, но вы хотите по модулю после добавления единицы, чтобы результирующие значения были в диапазоне [0,12], а не [1,13] ... но вы все сделали правильно.

лучшее, что я мог придумать для r (x), было:

r(x) = (x+6) % 19

это действительно не имеет никакого смысла для меня, почему это так, но я пришел к этому, что делитель по модулю должен был увеличить сдвиг на 6 из-за приведенных значений (38 и 101 имеют разность 1 по модулю 13, и они были в шести местах друг от друга). Я чувствую, что по модулю 19 это действительно делает перерыв, поэтому, хотя это кажется подходящим, я хотел бы найти лучший ответ, но это то, что я придумал, и я чувствую, что у меня был какой-то метод, позволяющий угадать и проверить.

Удачи, не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы по этому поводу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...