У меня возникли проблемы с пониманием того, как алгоритм скользящего хэша работает после того, как хэш был уменьшен до значения модуля, делясь на простое число.Понимание того, как работает подвижный хеш с модулем в алгоритме Рабина Карпа
Рассмотрите последовательность из 5 цифр в цифре 123456
.
Первый кусок 12345
. Я сохраняю значение, в следующем окне 6 приходит и 1 выходит.
Таким образом, новый хеш будет (12345-1*10^4)*10 + 6 = 23456
. Это довольно интуитивно.
Как очевидно, эти числа большие, поэтому нам нужна функция модуля, чтобы они были маленькими. Предположим, что для этой цели я принимаю 101
.
Таким образом, 12345
сократится до 23
. Как тогда, из этого, я получу скользящий хеш для следующего окна, 23456
?
Спасибо. Это было легко понять! – SexyBeast