Алгоритм Рабина-Карпа в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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