|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.06.2015, 12:59 | #1 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
Алгоритм Рабина-Карпа
//Хеш-функция для алгоритма Рабина-Карпа
public static int Hash(string x) { int p = 31; //Простое число int rez = 0; //Результат вычисления for (int i = 0; i < x.Length; i++) { rez += (int)Math.Pow(p,x.Length-1-i)*(int)(x[i]);//Подсчет хеш-функции } return rez; } Почему берут простое число р=31? Почему именно это число возводят в степень, объясните, пожалуйста? |
04.06.2015, 13:53 | #2 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
Объясните доступным языком, как работает хеш-функция, а то не понимаю этой логики...
|
04.06.2015, 14:18 | #4 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
У меня сравниваются большие тексты и если использовать массив, то сравнение идет долго, мне желательно ускорить этот процесс. Как вариант я выбрал хэш-функции, но не могу понять их логики
|
04.06.2015, 18:29 | #5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
На википедии вполне доступно объясняется назначение и принцип работы хэширующей функции в этом алгоритме.
Благодарить в репутацию. Проклинать — туда же
Последний раз редактировалось Luuzuk; 04.06.2015 в 18:34. Причина: читать тему внимательнее надо было ) |
04.06.2015, 18:34 | #6 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
Мне нужно выделить те участки, которые совпадают, этот метод вообще не подходит, потому что нужно не просто сказать одинаковые/нет тексты
|
04.06.2015, 18:34 | #7 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Да, понял свою ошибку, пост выше поправил
Благодарить в репутацию. Проклинать — туда же
|
04.06.2015, 18:41 | #8 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
Я начал работать с хешами, но меня результаты не удовлетворяют, выводит совсем не то, что я ожидаю....та еще коллизии
|
04.06.2015, 18:52 | #9 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
А что у вас выходит, чего вы ожидаете, и почему вас пугают коллизии?
Благодарить в репутацию. Проклинать — туда же
|
04.06.2015, 19:07 | #10 |
Пользователь
Регистрация: 23.05.2013
Сообщений: 32
|
http://cybern.ru/rabina-karpa-csharp.html
использовались вот эти методы ну например я вызываю string x ="мерой участия"; string s="Политический режим характеризуется методами осуществления политической власти, мерой участия граждан в управлении, отношением государственных институтов "; Console.WriteLine( Rabina(x,s)); В итоге ничего не получаю....почему? если ввожу string x ="Политический режим", то выводит индекс вхождения 0 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как работает эта программа(Алгоритм Рабина-Карпа с++)??? | Lodas | Общие вопросы C/C++ | 1 | 18.12.2011 11:58 |
Алгоритм Карпа-Рабина [JScript] | dixonich | Помощь студентам | 3 | 28.11.2010 22:04 |
Алгоритм Карпа-Рабина [JScript] | dixonich | Помощь студентам | 0 | 25.11.2010 21:46 |
Алгоритм Кнута-Морриса-Пратта или Рабина-Карпа (язык С++). Может у кого-нибудь есть готовый рабочий ? | Беата | Помощь студентам | 7 | 27.03.2010 10:50 |
алгоритм рабина-карпа(поиск подстроки) | kristy42 | Помощь студентам | 0 | 03.11.2009 18:41 |