Мне нужен хеш Rolling для поиска шаблонов в файле. (Я пытаюсь использовать строковый алгоритм поиска Rabin-Karp).
Я понимаю, как работает хороший Hash, и как хороший Rolling Hash должен работать, но я не могу понять, как эффективно реализовать разделение (или обратное умножение) при прокатке хэша. Я также читаю rsync использует скользящую версию adler32, но это не похоже на случайный хэш.
В идеале это будет здорово, если вы можете указать мне на оптимизированную реализацию C/С++, но любые указатели в правильном направлении помогут.