![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Предположим есть матрица:
0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 Надо найти подматрицу 1 0 1 1 0 0 1 0 1 То есть может быть матрица любого размера, в ней надо выяснить входит ли в нее другая матрица и вывести True или False. Что посоветуете, как лучше это сделать, может есть готовые компоненты или функции и не надо "изобретать велосипед". Если готовых решений нет, то как лучше записать алгоритм?
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
![]() |
#2 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Ищи вхождение строки искомой подматрицы в строку исходной матрицы...
Перемешивай дело с бездельем и не сойдешь с ума...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 226
|
![]()
так не получиться к примеру
если исходная 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 надо поискать подматрицу 1 1 1 1 1 1 1 1 1 1 1 1 если проверять по строкам то программа скажет что все верно а на самом деле это не так, как вторая строка не правильно расположена. Тут нужен другой подход |
![]() |
![]() |
![]() |
#4 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
![]()
используем первый совет- находим совпадающую строку(при этом запоминаем номер столбца первого элемента в этой строке)
далее переводим , так сказать, око на следующую строку( если таковая имеется) то есть обращаемся к элементу m[a,i+1] . размерность искомой матрицы мы знаем,поэтому сможем укзать признак очередного перевода нашего ока))) включив параллельные счетчики например i и j(параллельные тем двум, с помощью которых обращаемся к матрице) мы сможем сравнивать очередную пробную матрицу с искомой поэлементно и выходить из цикла сравнения как только очередная пара элементов не совпадёт )) но самое неприятное - это выход за границы матрицы. вот с ним уже конкретные условия необходимы. (( ЗЫ думаю, что тот , кто этот вопрос задал давно уже сам решил задачу)) Последний раз редактировалось vedro-compota; 14.04.2010 в 22:31. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск повторяющихся элементов в матрице | I_newbie | Помощь студентам | 2 | 15.03.2010 22:44 |
Поиск минимального элемента в матрице | F1eCSo | Помощь студентам | 0 | 04.02.2010 17:20 |
Поиск в матрице | Nikolai17 | Помощь студентам | 3 | 04.12.2009 00:09 |
поиск нуля в матрице | ciaonataha | Общие вопросы C/C++ | 13 | 31.03.2009 21:29 |