Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте za4eti.ru

Компьютеры, Программирование Компьютеры, Программирование

Алгоритм Кнута-Морриса-Прата

Коврик для запекания, силиконовый "Пекарь".
Коврик "Пекарь", сделанный из силикона, поможет Вам готовить вкусную и красивую выпечку. Благодаря материалу коврика, выпечка не
202 руб
Раздел: Коврики силиконовые для выпечки
Совок большой.
Длина 21,5 см. Расцветка в ассортименте, без возможности выбора.
21 руб
Раздел: Совки
Крючки с поводками Mikado SSH Fudo "SB Chinu", №4BN, поводок 0,22 мм.
Качественные Японские крючки с лопаткой. Крючки с поводками – готовы к ловле. Высшего качества, исключительно острые японские крючки,
58 руб
Раздел: Размер от №1 до №10

Алгоритм Кнута - Морриса - Пратта Алгоритм Кнута-Морриса-Пратта (КМП) получает навход слово X=x и просматривает его слева направо буква за буквой, заполняя при этом массив натуральных чисел l) (функция l определена в предыдущем пункте). Словами: l, одновременно являющегося его концом. Какое отношение все это имеет к поиску подслова? Другими словами, как использовать алгоритм КМП для определения того, является ли слово A подсловом слова B? Решение. Применим алгоритм КМП к слову A#B, где # - специальная буква, не встречающаяся ни в A, ни в B. Слово A является подсловом слова B тогда и только тогда, когда среди чисел в массиве l будет число, равное длине слова A. Описать алгоритм заполнения таблицы l. Решение. Предположим, что первые i значений l уже найдены. Мы читаем очередную букву слова (т.е. x. Другими словами, нас интересуют начала Z слова x.x[i 1, одновременно являющиеся его концами -из них нам надо брать самое длинное. Откуда берутся эти начала? Каждое из них (не считая пустого) получается из некоторого слова Z' приписыванием буквы x . Слово Z' является началом и концом слова x. Однако не любое слово, являющееся началом и концом слова x, годится - надо, чтобы за ним следовала буква x. Получаем такой рецепт отыскания слова Z. Рассмотрим все начала слова x, являющиеся одновременно его концами. Из них выберем подходящие - те, за которыми идет буква x. Из подходящих выберем самое длинное. Приписав в его конец х, получим искомое слово Z. Теперь пора воспользоваться сделанными нами приготовлениями и вспомнить, что все слова, являющиеся одновременно началами и концами данного слова, можно получить повторными применениями к нему функции l из предыдущего раздела. i:=1; 1 заполнена правильно} while i do begi le := l, которое является его концом; все более длинные начала оказались неподходящими} while (x) a d (le >0) do begi {начало не подходит, применяем к нему функцию l} le :=l; e d; {нашли подходящее или убедились в отсутствии} if x - самое длинное подходящее начало} l:= 0; e d; i:=i 1; e d; Доказать, что число действий в приведенном только что алгоритме не превосходит C для некоторой константы C. Решение. Это не вполне очевидно: обработка каждой очередной буквы может потребовать многих итераций во внутреннем цикле. Однако каждая такая итерация уменьшает le по крайней мере на 1, и в этом случае l. С другой стороны, при увеличении i на единицу величина l может возрасти не более чем на 1, так что часто и сильно убывать она не может - иначе убывание не будет скомпенсировано возрастанием. Более точно, можно записать неравенство l или (число итераций на i-м шаге) Остается сложить эти неравенства по всем i и получить оценку сверху для общего числа итераций. Будем использовать этот алгоритм, чтобы выяснить, является ли слово X длины подсловом слова Y длины m. (Как это делать с помощью специального разделителя #, описано выше.) При этом число действий будет не более C( m}, и используемая память тоже. Придумать, как обойтись памятью не более C (что может быть существенно меньше, если искомый образец короткий, а слово, в котором его ищут - длинное).

Решение. Применяем алгоритм КМП к слову А#В. При этом: вычисление значений l проводим для слова X длины и запоминаем эти значения. Дальше мы помним только значение l.l, нам для вычислений ничего не нужно. На практике слова X и Y могут не находиться подряд, поэтому просмотр слова X и затем слова Y удобно оформить в виде разных циклов. Это избавляет также от хлопот с разделителем. Написать соответствующий алгоритм (проверяющий, является ли слово X=x Решение. Сначала вычисляем таблицу lкак раньше. Затем пишем такую программу: j:=0; le :=0; {le - длина максимального качала слова X, одновременно являющегося концом слова y} while (le ) a d (jm) do begi while (x) a d (le >0) do begi {начало не подходит, применяем к нему функцию l} le : = l; e d; {нашли подходящее или убедились в отсутствии} if x - самое длинное подходящее начало} le :=le 1; e d else begi {подходящих нет} le :=0; e d; j:=j 1; e d; {если le = , слово X встретилось; иначе мы дошли до конца слова Y, так и не встретив X} Алгоритм Бойера - Мура Этот алгоритм делает то, что на первый взгляд кажется невозможным: в типичной ситуации он читает лишь небольшую часть всех букв слова, в котором ищется заданный образец. Как так может быть? Идея проста. Пусть, например, мы ищем образец abcd. Посмотрим на четвертую букву слова: если, к примеру, это буква e, то нет никакой необходимости читать первые три буквы. (В самом деле, в образце буквы e нет, поэтому он может начаться не раньше пятой буквы.) Мы приведем самый простой вариант этого алгоритма, который не гарантирует быстрой работы во всех случаях. Пусть x - образец, который надо искать. Для каждого символа s найдем самое правое его вхождение в слово X, то есть наибольшее k, при котором х; если символ s вовсе не встречается, то нам будет удобно положить pos=0 (мы увидим дальше, почему). Как заполнить массив pos? Решение. положить все pos:=i; e d; В процессе поиска мы будем хранить в переменной las номер буквы в слове, против которой стоит последняя буква образца. Вначале las = (длина образца), затем las постепенно увеличивается. las := ; {все предыдущие положения образца уже проверены} while las if x he begi {последние буквы разные} las :=las ( -pos - это минимальный сдвиг образца, при котором напротив y встанет такая же буква в образце. Если такой буквы нет вообще, то сдвигаем на всю длину образца} e d else begi если нынешнее положение подходит, т.е. если x, то сообщить о совпадении; las :=las 1; e d; e d; Знатоки рекомендуют проверку совпадения проводить справа налево, т.е. начиная с последней буквы образца (в которой совпадение заведомо есть). Можно также немного сэкономить, произведя вычитание заранее и храня не pos, т.е. число букв в образце справа от последнего вхождения буквы Возможны разные модификации этого алгоритма. Например, можно строку las :=las i заменить на las :=las ( -u), где u - координата второго справа вхождения буквы x в образец. Как проще всего учесть это в программе Решение. При построении таблицы pos написать for i:=1 o -1 do. (далее как раньше), а в основной программе вместо las :=las 1 написать las :=las -pos; Приведенный упрощенный вариант алгоритма Бойера-Мура в некоторых случаях требует существенно больше действий (число действий порядка m ), проигрывая алгоритму Кнута-Морриса-Пратта.

Пример ситуации, в которой образец не входит в слово, но алгоритму требуется порядка m действий, чтобы это установить. Решение. Пусть образец имеет вид baaa. aa, а само слово состоит только из букв а. Тогда на каждом шаге несоответствие выясняется лишь в последний момент. Настоящий (не упрощенный) алгоритм Бойера-Мура гарантирует, что число действий не превосходит C(m ) в худшем случае. Он использует идеи, близкие к идеям алгоритма Кнута-Морриса-Пратта. Представим себе, что мы сравнивали образец со входным словом, идя справа налево. При этом некоторый кусок Z (являющийся концом образца) совпал, а затем обнаружилось различие: перед Z в образце стоит не то, что во входном слове. Что можно сказать в этот момент о входном слове? В нем обнаружен фрагмент, равный Z, а перед ним стоит не та буква, что в образце. Эта информация может позволить сдвинуть образец на несколько позиций вправо без риска пропустить его вхождение. Эти сдвиги следует вычислить заранее для каждого конца Z нашего образца. Как говорят знатоки, все это (вычисление таблицы сдвигов и ее использование) можно уложить в C(m ) действий. Алгоритм Рабина Этот алгоритм основан на простой идее. Представим себе, что в слове длины m мы ищем образец длины . Вырежем окошечко размера и будем двигать его по входному слову. Нас интересует, не совпадает ли слово в окошечке с заданным образцом. Сравнивать по буквам долго. Вместо этого фиксируем некоторую функцию, определенную на словах длины . Если значения этой функции на слове в окошечке и на образце различны, то совпадения нет. Только если значения одинаковы, нужно проверять совпадение по буквам. В чем выигрыш при таком подходе. Казалось бы, ничего - ведь чтобы вычислить значение функции на слове в окошечке, все равно нужно прочесть все буквы этого слова. Так уж лучше их сразу сравнить с образцом. Тем не менее выигрыш возможен, и вот за счет чего. При сдвиге окошечка слово не меняется полностью, а лишь добавляется буква в конце и убирается в начале. Хорошо бы, чтобы по этим данным можно было рассчитать, как меняется функция. Привести пример удобной для вычисления функции. Решение. Заменим все буквы в слове и образце их номерами, представляющими собой целые числа. Тогда удобной функцией является сумма цифр. (При сдвиге окошечка нужно добавить новое число и вычесть пропавшее.) Для каждой функции существуют слова, к которым она применима плохо. Зато другая функция в этом случае может работать хорошо. Возникает идея: надо запасти много функций и в начале работы алгоритма выбирать из них случайную. (Тогда враг, желающий подгадить нашему алгоритму, не будет знать, с какой именно функцией ему бороться.) Привести пример семейства удобных функций. Решение. Выберем некоторое число p (желательно простое, смотри далее) и некоторый вычет x по модулю p. Каждое слово длины будем рассматривать как последовательность целых чисел (заменив буквы кодами). Эти числа будем рассматривать как коэффициенты многочлена степени -1 и вычислим значение этого многочлена по модулю p в точке x. Это и будет одна из функций семейства (для каждой пары p и x получается, таким образом, своя функция).

Идеи неопозитивизма получили выражение в деятельности Венского кружка, на основе которого сложился логический позитивизм. К неопозитивизму примыкал ряд представителей философии науки (Ч. Моррис, П. Бриджмен), упсальской школы в Швеции и др. В 1950-е гг. больший вес приобретает лингвистическая философия. Представители неопозитивизма сыграли значительную роль в развитии современной формальной логики, семиотики и логики науки. НЕОПОЗНАННЫЕ ЛЕТАЮЩИЕ ОБЪЕКТЫ (НЛО) (от англ. Unknown Flying Objects - UFO - за рубежом называются также Fluing sancers - летающие тарелки), часто наблюдаемые в атмосфере тела круглой или эллипсоидальной формы; в ряде случаев установлено, что являются следствием оптических атмосферных эффектов. Мнение о том, что НЛО - космические корабли внеземных цивилизаций, является дискуссионным. НЕОПРЕДЕЛЕННАЯ ФОРМА ГЛАГОЛА - то же, что инфинитив. НЕОПРЕДЕЛЕННОЕ УРАВНЕНИЕ в теории чисел - уравнение, содержащее более одного неизвестного. Разыскиваются решения неопределенных уравнений, удовлетворяющие тем или иным арифметическим условиям (обычно ищут решения неопределенных уравнений в целых или рациональных числах)

1. Экономические методы охраны окружающей среды и особенности их использования в России

2. Методы вывода человека из бытовой депрессии с использованием общеизвестных направлений и методов научной психологии

3. Алгоритм Кнута-Морриса-Пратта

4. Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения)

5. Методы компьютерной обработки статистических данных. Проверка однородности двух выборок

6. Использование полей и закладок для оформления и автоматизации редактирования и обработки экономической информации в документах Word
7. Использование численных методов для решения дифуpов (2-го порядка) (, демонстрация применения интерполяции в среде MATHCAD-а)
8. Использование криминалистических средств и методов в установлении лица совершившего преступление

9. Использование различных методов обучения с целью активизации познавательной деятельности на уроках технологии

10. Радиофизические методы обработки информации в народном хозяйстве

11. Японские методы организации труда и их использование за рубежом и в России

12. Построение экономической модели с использованием симплекс-метода

13. Метод капитализации дохода и его использование при оценке объектов недвижимости

14. Методы получения и обработки маркетинговой информации

15. Использование графического метода при изучении электрического резонанса в курсе физики средней школы

16. Метод выделения единичных вызванных потенциалов из электроэнцефалограммы без использования шаблона

Шнуровка-бусы "Звери".
Размер бусин: 3-4 см. Диаметр отверстия в бусине: около 6 мм. Длина шнурка: около 80 см. Вес: 0.2 кг. Количество бусин: 15 штук .
321 руб
Раздел: Деревянные шнуровки
Кубок Россимвол, 24 см.
Материал: металл, пластик, мрамор. Диаметр: 80 мм. Высота: 24 см.
485 руб
Раздел: Наградная продукция
Бустер Happy Baby "Booster Rider" Lime (15-36 кг).
Rider — бустер группы II-III (от 15 до 36 кг). Бустер без спинки с мягкими подлокотниками. Форма бустера обеспечивает правильное положение
999 руб
Раздел: Группа 3 (22-36 кг), бустеры

17. Еффективность использования игрового и соревновательного методов обучения дошкольников

18. Использование изобретений и промышленных образцов, защищенных авторскими свидетельствами СССР и свидетельствами СССР

19. Использование информационных методов в инженерной психологии

20. Использование PR-методов в работе субъектов современного рыночного пространства с телевизионными СМИ

21. Список групп запрещенных для использования допинговых препаратов и методов

22. К проблемам выбора перспективных направлений в использовании нетрадиционных методов и средств физической культуры
23. Построение экономической модели c использованием симплекс-метода
24. Использование статистических методов в оценке деятельности коммерческого банка

25. Построение экономической модели c использованием симплекс-метода

26. Оптимизация процесса обработки воды методом ультрафильтрации

27. Высокоуровневые методы обработки информации и программирования

28. Изучение методов адресации информации и обработки адресов

29. Использование интегрированных в язык запросов (linq) при обработке массива данных в microsoft visual basic 2008

30. Использование космических методов при исследовании природных ресурсов

31. Методика сбора и обработки материала по изучению перспектив использования сосны

32. Использование метода люминесцентной микроскопии в исследовании микроводорослей

Стиральный порошок Attack "BioEX", концентрированный, 0,9 кг.
Концентрированный стиральный порошок Attack "BioEX" подходит для стирки белого, цветного, темного и черного белья. Запасной блок
342 руб
Раздел: Стиральные порошки
Звуковой плакат "Говорящая азбука".
Представляем Вашему вниманию уникальную новинку — развивающие звуковые плакаты, которые содержат стихотворения, занимательные и
849 руб
Раздел: Электронные и звуковые плакаты
Наушники "Philips SHE3550", черные.
Маленькие громкие динамики наушников-вкладышей "Philips SHE3550" обеспечивают плотное прилегание и чистый звук с мощными басами.
803 руб
Раздел: Гарнитуры и трубки

33. Методы оптимального использования и воспроизводства лесных ресурсов

34. Комплексный метод оценивания дополнительных аудиторских рисков, возникающих в условиях компьютерной обработки данных, на основе современных информационных технологий

35. Обработка данных методом преломленных волн

36. Использование метода ветвей и границ при адаптации рабочей нагрузки к параметрам вычислительного процесса

37. Обзор методов обработки естественного языка в задачах дистанционного обучения

38. Вычисление площадей эпюр с использованием численных методов
39. Классификация физико-химических методов обработки и очистки. Плазменные методы удаления материала с поверхности твердого тела
40. Методы и средства обработки аналоговых сигналов

41. Использование метода ELECTRA для оценки конкурентоспособности компьютерных фирм

42. Исследование рекламной аудитории: способы проведения и методы обработки результатов

43. Методы предварительных эквивалентных преобразований и итерационные методы с минимизацией невязки для решения СЛАУ

44. Экономические последствия использования тарифных методов регулирования международной торговли

45. Использование жанра и метода интервью при подборе персонала

46. Использование методов мотивации в работе руководителя

47. Использование современных методов оценки рыночных рисков для принятия эффективных управленческих решений

48. Материальное стимулирование как метод управления: анализ и пути повышения эффективности его использования в организации (на материалах предприятия КТСУП "Отель")

Кружка фарфоровая "Царский шиповник", 650 мл (3 вида).
Большая фарфоровая кружка универсального применения "Царский шиповник", украшенная золотой обводкой, станет достойным
477 руб
Раздел: Кружки
Игрушка-антистресс "Fidget Cube. Green White".
Поклацать ручкой, подергать ножкой, скрутить в трубочку билетик и лопнуть все пупырышки на пленке. О, да! Эти житейские радости знакомы
465 руб
Раздел: Антистрессы
Дождевик на коляску универсальный в сумке.
Погода бывает капризной. Минуту назад светило солнышко, но набежала тучка и пошел дождь, а то и град. Защитить малыша и продолжить
323 руб
Раздел: Дождевики, чехлы для колясок

49. Рекомендации по использованию социально-психологических методов управления на примере ОАО "Автоваз"

50. Использование метода проектов в процессе ознакомления детей 7 лет с немецкой культурой

51. Использование современных информационных и коммуникационных технологий в учебном процессе на примере изучения раздела "Технология обработки ткани 5 класс"

52. Ознакомление дошкольников с природой с использованием словесных методов

53. Преодоление трудностей в обучении учащихся начальных классов с использованием методов театральной педагогики

54. Дидактические основы использования игрового метода на уроке физкультуры в 10 классах
55. Лучевые методы обработки материалов
56. Методы обработки и сборки бортов верхней одежды

57. Методы обработки металлических поверхностей

58. принципы и методы отбора образцов, проб и выборок при исследовании свойств текстильных материалов

59. Характеристика электрофизикохимических ТП. Электроэрозионные методы обработки

60. Электрохимические методы обработки. Ультразвуковая обработка

61. Использование метода гештальт-терапии в социально-психологической реабилитации военнослужащих, получивших ранения

62. Использование проективного метода "Несушествующее животное в психологическом консультировании

63. Использование биографического метода в социальной работе.

64. Использование индексного метода в таможенной статистике

Пакеты фасовочные в пластах, 18(+8)x35 см (1000 штук).
Область применения: расфасовка, упаковка продуктов питания и товаров народного потребления как на производстве, так и в быту. Размер:
573 руб
Раздел: Пакеты для продуктов
Беговел Tech Team "Big 10", цвет: серый (2018 г).
Детский беговел с платформой и надувными колесами. Ориентирован на малышей до 5 лет. Беговел - это маленький велосипед без педалей,
3000 руб
Раздел: Беговелы
Пирамида "Радуга", 29 см.
Пирамидка - замечательный тренажер для развития мелкой моторики и координации движений. Играя, ребенок знакомится с разными цветами,
320 руб
Раздел: Пластиковые

65. Использование метода круговой тренировки для повышения функциональных способностей боксеров

66. Использование метода электропроводности для изучения кинетики образования поли-бис-малеимидаминов

67. Хроматографические методы анализа и их использование в анализе объектов окружающей природной среды

68. Кондуктометрический метод анализа и его использование в анализе объектов окружающей природной среды

69. Использование экономико-статистических методов в управлении обязательствами коммерческой организации на примере ООО "Нектар"

70. Методы обработки экономической информации в анализе
71. Снижение себестоимости продукции путем использования организационно-экономических методов (на примере ПО "Белорусский автомобильный завод")
72. Экономическая сущность и методы определения эффективности использования оборотных средств

73. Использование методов линейного программирования и экономического моделирования в технологических процессах

74. Оценка запаса прочности бизнеса с использованием модулей "Анализ чувствительности", "Анализ по методу Монте-Карло" и "Анализ безубыточности"

75. Исследование природных ресурсов планеты с помощью космических методов

76. Изучение миксомицетов среднего Урала, выращенных методом влажных камер

77. Методы исследования в цитологии

78. МЕТОДЫ ИЗУЧЕНИЯ ЭВОЛЮЦИИ ЧЕЛОВЕКА

79. Методологическое значение сравнительного метода в зоологических исследованиях

80. Использование фитонцидных растений для оздоровления воздуха помещений

Портфель "Attache", A4, серый.
Одно отделение.
375 руб
Раздел: Папки-портфели, папки с наполнением
Пенал-книжка для начальной школы "Ever After High", 21x14 см.
Пенал-книжка для начальной школы. 1 отделение, держатели письменных принадлежностей. Застегивается на молнию. Размер: 21х14х3 см.
303 руб
Раздел: Без наполнения
Набор инструментов.
Помогаю папе - отличный игровой набор для юных мастеров. Научит начальным профессиональным навыкам. Поможет ребенку почувствовать себя
589 руб
Раздел: Инструменты и мастерские

81. Обзор методов и способов измерения физико-механических параметров рыбы

82. Новейшие методы селекции: клеточная инженерия, генная инженерия, хромосомная инженерия

83. Организация и порядок использования в бою мотопехотной (пехотной, танковой) (бригады армий вероятного противника)

84. Зажигательные смеси, состав, средства применения и доставки, вызываемые повреждения, методы лечения и защиты

85. История изучения и использования природных вод на Урале

86. Методы и модели демографических процессов
87. Гидрохимический, атмохический и биогеохимический методы поисков
88. Добыча золота методами геотехнологии

89. Предварительная оценка запасов подземных вод месторождения "Ростань" (г. Борисоглебск)

90. Использование ассимиляционного региона /в экономике Курганской области/

91. Платежи за использование природных ресурсов

92. Коллективное использование произведений

93. Предмет, метод, источники Административного права

94. Методы осуществления государственной власти

95. Межбанковские отношения на основе использования высоких технологий интербанковских телекоммуникаций

96. Предмет и метод гражданского права

Детская машинка "Вихрь", голубая.
Маленькие гонщики в возрасте от 1 до 3 лет будут в восторге от маневренной машинки "Вихрь". Легкая и невероятно простая в
1350 руб
Раздел: Каталки
Подставка для книг "Brauberg", малая.
Предназначена для книг, учебников и журналов. Регулируемый угол наклона. Металлическая подставка. Держатель для страниц. Экономит место на
616 руб
Раздел: Подставки, лотки для бумаг, футляры
Сменный фильтр "Аквафор В-100-5", 2 штуки.
Модуль В100-5 содержит в оптимальном соотношении гранулы кокосового угля, ионообменные смолы и "ноу-хау" АКВАФОР - волокна
379 руб
Раздел: Фильтры для воды

97. Правовое регулирование расчетов с использованием пластиковых карт

98. Формы и методы государственного регулирования экономики в Казахстане

99. Математические методы и модели в конституционно-правовом исследовании


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.