Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ - Сравнение двух массивов. 
:(
    Опции темы
kuton93
Дата 25.5.2015, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.5.2015

Репутация: нет
Всего: нет



Всем привет!
Прошу вашей помощи, Великие Гуру C++.
Пишу приложение, в котором есть небольшой словарик, набор строчек. Строчки разной длины и содержат в себе только числовые значения, записанные через ";" . Приложению на вход поступает строчка, идентичная по характеристикам, только гораздо большей длины. 
Вопрос: необходимо проанализировать входную строчку на предмет наличия в ней маленьких строчек из словаря, при чем, совпадением считается, если числа из строчки словаря совпадают с участком входной строки не меньше чем на 80%.
Пример:
на входе: [....100;1000;10000;100000;900;75;871;347;...]
в словаре: 1) [77;15;224;34;781;574;1561;]
2) [800;8000;80000;850;]
3) [13;16;61;516;4;864;61;98;46;8189;63;]
Результат: сообщение "совпадение обнаружено!"


P.S. Спасибо всем откликнувшимся, буду рад абсолютно любой помощи, от программного кода, до ссылок и названий доп. литературы!
PM MAIL   Вверх
baldina
Дата 25.5.2015, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



я бы начал с простого: преобразовать входную строку и элементы словаря в целочисленные массивы. идейно сравнивать и сдвигать так же, как в алгоритме Бойера—Мура—Хорспула. Таблица сдвига должна учитывать требуемую точность.

насколько велик словарь, какова длина входной строки, как часто производится поиск? вариант "в лоб" чем не подходит?

PM MAIL   Вверх
kuton93
Дата 25.5.2015, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.5.2015

Репутация: нет
Всего: нет



Цитата

насколько велик словарь, какова длина входной строки, как часто производится поиск? вариант "в лоб" чем не подходит?

В словаре до 20 слов(строчек). Каждая строчка до шести килобайт. Входная строка до двух мегабайт.
Под 
Цитата

как часто производится поиск?
 что имеется в виду? Под вариантом "в лоб", непонятен сам подход (как это реализовывать). Сейчас вникаю в алгоритм Бойера—Мура—Хорспула, спасибо за идею!

Это сообщение отредактировал(а) kuton93 - 25.5.2015, 22:48
PM MAIL   Вверх
Romikgy
Дата 26.5.2015, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



простым обходом массивов , что нельзя? и почему С++ , для таких задач более подходят скриптоввые языки....


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
kuton93
Дата 26.5.2015, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.5.2015

Репутация: нет
Всего: нет



Цитата

почему С++ 

Потому что в других языках я совсем "ноль". В C++ хотя бы чуть-чуть понимаю.
А в обход массивов, как это сделать?
PM MAIL   Вверх
baldina
Дата 26.5.2015, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(kuton93 @  25.5.2015,  22:46 Найти цитируемый пост)
Под вариантом "в лоб", непонятен сам подход (как это реализовывать)

http://ideone.com/dIa62p
PM MAIL   Вверх
borisbn
Дата 26.5.2015, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



А чем std:smile с предикатом, сравнивающим с требуемой точностью, не подходит ?

Добавлено через 57 секунд
гы.. а прикольно функция search с namespace'ом в начале выглядит


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.