Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2009, 18:41   #1
kristy42
Новичок
Джуниор
 
Регистрация: 29.10.2009
Сообщений: 1
Печаль алгоритм рабина-карпа(поиск подстроки)

Язык Си

Добрый вечер. В общем задание такое:
нужно на выходе получить значение хеш-функции для шаблона и позиции всех символов в тексте, которые совпали с шаблоном

Пример
Вход:
example
this is simple example
Выход:
1577 16 17 18 19 20 21 22


В общем есть функция, которая выполняет этот алгоритм (рабина-карпа)
Код:
Код:
int Robin_Carp_Matcher(char s[], char q[], int d, int p) { 
  	 int i, h, k, M, N, t_q, t_k; 
	N =  strlen(s);  М = strlen(q);
/* вычисление h=(dM-1)mod p */
	h=1;  for(i=1; i<M; i++)
		h=(h*d)%p;
/* вычисление tk и tq по  схеме Горнера */ 
	t_q = 0; t_k = 0; 
	for(i=0; i<M; i++){
		t_q = (d*t_q + q[i])% p;
		t_k = (d*t_k + s[i])% p;
	}
/* сравнение шаблона с подстроками*/
	for (k=0; k<=N-M; k++) {
		if (t_q==t_k) {
			for (i=0;(i<M)&&(q[i]==s[k+i]); i++); 
			if (i==M) return k;
		}
		if (k<N-M) { 
			t_k = (d*(t_k-s[k]*h)+ s[k+M])% p; 
			if   (t_k < 0)  t_k + = p; 
		}
	}        
return -1;
}
d - число символов в алфавите
р - число, по модулю которого производятся вычисления

Прошу помочь написать main, я просто не совсем поняла алгоритм, ну получается должен быть какой-то цикл, вообще что возвращает функция? Вхождение первого символа, ну то есть если брать на примере 16? А значение хеш-функции по-видимому h.
Если нужно, могу алгоритм выложить подробнее.
kristy42 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм поиска текста Рабина на Delphi 7 выходит ошибка Des Общие вопросы Delphi 14 15.05.2012 11:14
Сортировка, поиск, рекурсивный алгоритм Delphi Stases Помощь студентам 4 29.05.2009 01:15
Алгоритм поиск текста Des Общие вопросы Delphi 5 27.04.2009 22:01
Алгоритмы Рабина - Карпа Volchara Общие вопросы C/C++ 0 24.04.2009 16:40