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