2013-03-27 3 views
0

В методе квадратичного зондирования для разрешения хеш-столкновений H (k) = h (k) + c1 * i^2 + c2 * i.Квадратичное зондирование

Мне нужна помощь в определении способов определения значений c1 & c2, чтобы обеспечить доступ ко всем слотам хеш-таблицы.

ответ

0

ht_size = количество хеш-таблиц. Я предполагаю, что вы имеете в виду

h(k) + c1*i^2 + c2*i % ht_size 

c1 = 0, c2 = 1 будет работать;)

c1 = 0, c2 совместно с премьер ht_size также работает. 1 является взаимно простым с любым числом. Простые числа также являются хорошими кандидатами, если ht_size не является случайным же простым числом.

Почему такая настройка посещает все слоты? Если c1 = 0 и c2 взаимно просты в ht_size, то ggt (c2, ht_size) == 1. Иными словами, в группе (теория алгебраических групп) c2 является генератором. Это означает, что c2**i будет генерировать все числа от 0 до ht_size - 1. К ** i означает оператор мощности, то есть применяя оператор группы i раз. Оператор группы - +, поэтому c2**i в групповых теоретических обозначениях соответствует c2*i в нормальных обозначениях.

Надеюсь, это дало вам представление о том, как начать поиск комбинации c1 и c2, где c1! = 0.

Смежные вопросы