|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.11.2014, 10:57 | #1 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Поиск не пересекающихся нулей в матрице
Всем доброго времени суток. Столкнулся с проблемой. Есть матрица квадратная, например:
0 4 7 0 5 8 0 4 9 0 5 9 7 3 0 0 Нужно найти столько не пересекающихся нулей, какого размера и сама матрица. Эта матрица размера 4 на 4, поэтому надо найти 4 нуля. Когда в матрице всего 4 нуля то проверить пересекаются они или нет - легко. А вот когда их 6, как здесь то выбрать из них не пересекающиеся сложнее. |
04.11.2014, 11:00 | #2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
А что значит не пересекающиеся нули.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
04.11.2014, 11:01 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Язык китайский? И чем отличается "легко" для 4 и "сложно" для 6?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.11.2014, 11:15 | #4 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Так 0 и не имеет пересечений. Вот цифра 4 пересекается или 7, но с палочкой посередине
E-Mail: arigato.freelance@gmail.com
|
04.11.2014, 11:27 | #5 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Ну смотрите. Нужно из всех нулей выбрать те, которые не будут находится по координатам икс и игрек с другими выбранными. Например в последнем столбце ноль пересекается с нулем из первого столбца и в этом же столбце тоже есть еще один ноль - поэтому сразу неясно какой из этих нулей брать. В итоге после выбранных нулей должно быть найдено оптимальное решение - выбрать 4 нуля, которые находятся в разных столбцах и в разных строках (ни один из ноликов не должен быть в одной строке или столбце с другим выбранным нулем), например решение такое:
Выбранные нули с координатами (1,1), (2,3), (3,2), (4,4). Если из матрицы все лишнее удалить то получится: 0 _ _ _ _ _ 0 _ _ 0 _ _ _ _ _ 0 Ни у одного из этих нулей ни повторяется ни одна из координат. Как это реализовать я не знаю. Мне видется вариант примерно такой: сначала находим нолик, в столбце и строке которого больше нет нулей и выбираем его, затем просто находим все нули которые не повторяют координаты ни икс не игрек уже найденных нулей. Но мне кажется такой алгоритм может не всегда срабатывать. Особенно, если не будет нулей в ряду и столбце которых больше не будет нулей. Данный алгоритм мне нужен для построения алгоритма решения матрицы венгерским способом. Сам венгерский способ, я думаю реализую, но после каждого шага надо пытаться найти в каждом столбце по нулю, причем чтобы по строкам выбранные нули тоже не находились в одних координатах |
04.11.2014, 11:29 | #6 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Легко для 4, означает, что когда всего есть 4 нуля то проверить их легко. Так как нам ничего больше не остается как брать имеющиеся нули и смотреть не повторяются ли их строки и столбцы?
А вот когда нулей больше, то сложно определить какие же из них выбирать? |
04.11.2014, 11:32 | #7 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
В общем простым языком, все найденные нули должен находится в разных столбцах и в разных строках.
|
04.11.2014, 11:32 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В каждой строке считать количество нулей и если один - считать количество нулей в соответствующем столбце. Если один - то что нужно. И это без разницы, что для 4, что для 6
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.11.2014, 11:42 | #9 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
А если у нас будет такая матрица
4 0 5 0 0 2 0 0 2 4 0 1 0 0 3 5 у нас по два нуля в одной строке и по два в каждом столбце? |
04.11.2014, 11:43 | #10 |
Форумчанин
Регистрация: 30.06.2012
Сообщений: 145
|
Можно чтобы в этой строке или столбце были еще нули. Нельзя только чтобы выбранные (те которые мы выберем) находились в одной строке или столбце
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delhhi. Графики ф-ий. Поиск нулей | Nasty1 | Помощь студентам | 0 | 02.04.2012 21:42 |
нужен пример составления функции, считающей кол-во нулей в матрице | Alexey355 | Помощь студентам | 2 | 19.03.2011 22:14 |
Матрица n*n и поиск нулей. | Avus | Общие вопросы Delphi | 2 | 20.12.2010 15:46 |
Pascal. Поиск линейно зависимых строк матрицы. Error 200: Division by zero, хотя нулей в матрице нет | Paul-SFL | Помощь студентам | 8 | 27.11.2010 21:52 |
Поиск нулей в файле.Хелп | CESHNIK | Общие вопросы C/C++ | 1 | 22.02.2008 14:50 |