0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
1 | |
Выборка всех подматриц матрицы15.08.2019, 10:47. Показов 6890. Ответов 28
Метки нет (Все метки)
Здравствуйте, такой вопрос:
У меня есть класс матриц, в котором прописана их обработка, различные операции над ними. Не могу понять алгоритм для написания кода, чтобы программа проходила по этой матрице (двумерный массив в моем случае) m*n, находила все квадратные подматрицы и записывала их в новые двумерные массивы.
0
|
15.08.2019, 10:47 | |
Ответы с готовыми решениями:
28
Выделение подматриц из матрицы Максимальное значение суммы всех элементов на множестве указанных подматриц Заменить элементы матрицы суммой элементов соответствующих подматриц Алгоритм поиска возможного количества подматриц матрицы А 4x6 |
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
|
||||||
15.08.2019, 11:46 | 2 | |||||
egoreq,
вот, быстро накидал.. может и не самый оптимальный вариант, но вроде делает то, что вам нужно.. исходил из того, что минимальный размер квадратной матрицы 2х2 сделал в консольном приложении, у меня есть класс для работы с матрицами. оттуда вытащил вспомогательные функции для отображения и генерации матриц) это лишь для демонстрации:
1
|
Заблокирован
|
||||||
15.08.2019, 11:51 | 3 | |||||
Сообщение было отмечено Элд Хасп как решение
Решение
2
|
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
|
||||||
15.08.2019, 11:59 | 4 | |||||
Сообщение было отмечено Элд Хасп как решение
Решение
нашел маленький баг, не все матрицы охватывал.. чуть переделал:
1
|
17785 / 12936 / 3381
Регистрация: 17.09.2011
Сообщений: 21,211
|
|||||||||||
15.08.2019, 12:07 | 5 | ||||||||||
Сообщение было отмечено Элд Хасп как решение
Решение
3
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
15.08.2019, 12:16 [ТС] | 6 |
Спасибо, сегодня попробую сделать.
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 11:49 [ТС] | 7 |
hamin, потестил ваш код, но есть проблема в том, что, например, возьмем матрицу 3*3, код отлавливает только матрицы с индексами (11,12,21,22), (12,13,22, 23) и еще 2 такие же матрицы, но он не отлавливает подматрицу, например с индексами (11, 13, 31, 33). Как это можно исправить. В общем проблема в том, что все ровно не все подматрицы видит
Добавлено через 31 минуту Pvt, В вашем случае тоже, к сожалению, не все подматрицы отлавливает
0
|
17785 / 12936 / 3381
Регистрация: 17.09.2011
Сообщений: 21,211
|
|
20.08.2019, 12:04 | 8 |
egoreq, с моим вариантом какие-то проблемы имеются?
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 12:21 [ТС] | 10 |
kolorotur, Ваш вариант пока еще не проверял
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 12:24 [ТС] | 11 |
Pvt, Например берем матрицу 3 на 3, вот такую подматрицу он не отловит, также не отловит матрицу (11, 13, 21, 23)
Извиняюсь за такие рисунки))
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 12:30 [ТС] | 13 |
kolorotur, В вашем случае аналогичная ошибка)
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 12:34 [ТС] | 14 |
Pvt, Такую и не должен найти, по моим представлениям, в случае с матрицей 3*3 должны быть такие подматрицы, а у Вас отлавливает только первые 4
0
|
17785 / 12936 / 3381
Регистрация: 17.09.2011
Сообщений: 21,211
|
|
20.08.2019, 12:40 | 15 |
А, так не подряд идущие элементы и не рассматривались.
Потому да, такое искать не будет.
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 12:43 [ТС] | 16 |
kolorotur, Вот в этом то и заключается сложность, я не понимаю алгоритм решения задачи в общем виде, сам в голове могу у себя в частном виде перебрать 3*3 или 4*4, например, а вот общий алгоритм не понимаю
0
|
17785 / 12936 / 3381
Регистрация: 17.09.2011
Сообщений: 21,211
|
|
20.08.2019, 13:28 | 17 |
egoreq, какие в принципе ограничения есть?
Вот такая подматрица считается правильной? А такая? Хотелось бы точные правила. Добавлено через 44 секунды Ого, знатно редактор покорежило! Вставил картинками.
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 13:53 [ТС] | 18 |
kolorotur, Думаю да, первый вариант рабочий, второй не прокатит
0
|
20.08.2019, 14:11 | 19 | |||||
У меня тут был метод, вычисляющий все сочетания в массиве по заданной длине сочетания. Приспособил его для этой задачи.
0
|
0 / 0 / 0
Регистрация: 08.08.2019
Сообщений: 26
|
|
20.08.2019, 14:30 [ТС] | 20 |
Toros1992, спасибо большое, но все еще не работает)). постараюсь сам посидеть поразбираться еще
0
|
20.08.2019, 14:30 | |
20.08.2019, 14:30 | |
Помогаю со студенческими работами здесь
20
В заданной матрице найти максимальную сумму элементов прямоугольной подматрицы среди всех возможных подматриц Для заданной матрицы порядка N вывести на экран все пары квадратных подматриц порядка К Выборка всех последних сообщений из всех диалогов Выборка всех символов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |