Алгоритм Рабина-Карпа в C++C++

Программы на C++. Форум разработчиков
Anonymous
Алгоритм Рабина-Карпа в C++

Сообщение Anonymous »

Я пытаюсь понять реализацию алгоритма Рабина-Карпа. d — количество символов во входном алфавите, но если я заменю 0 или любое другое значение вместо 20, это ни на что не повлияет. Почему это происходит именно так?
// Rabin-Karp algorithm in C++
#include
#include
using namespace std;
#define d 20

void rabinKarp(char pattern[], char text[], int q) {
int m = strlen(pattern);
int n = strlen(text);
int i, j;
int p = 0;
int t = 0;
int h = 1;

for (i = 0; i < m - 1; i++)
h = (h * d) % q;

// Calculate hash value for pattern and text
for (i = 0; i < m; i++) {
p = (d * p + pattern) % q;
t = (d * t + text) % q;
}

// Find the match
for (i = 0; i

Подробнее здесь: https://stackoverflow.com/questions/702 ... rithm-in-c

Вернуться в «C++»