Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rmb
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 18
#1

Построение новой матрицы по части заданой матрицы - C++

17.11.2011, 20:01. Просмотров 825. Ответов 7
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане!
Не могу реализовать свою идею, посдкажите как, пожалуйста.

Задача.

Получить квадратную матрицу В порядка n, каждый элемент bij(i,j индексы) которой равен максимуму из элементов исходной квадратной матрицы А порядка n, расположенных в закрашенной области, определяемой индексами i, j, на рисунке.

Добавил также фото, где показано по какому принципу строиться матрица b.

Моей идей было то, что элементы матрицы А, которые нужно сравнить между собой, записываются в массив С. После этого находится максимум по массиву С и записывается в соответствующий элемент матрицы B.

Не могу придумать алгоритм, по которому все нужные мне элементы попадают в массив С из матрицы А.

Спасибо.
0
Миниатюры
Построение новой матрицы по части заданой матрицы  
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построение новой матрицы по части заданой матрицы (C++):

На главной диагонали новой матрицы разместить элементы заданного столбца исходной матрицы - C++
У меня вот небольшой ступр, помогите, пожалуйста. Дана квадратная матрица действительных чисел D размерности NxN. Создать новую матрицу С...

Матрицы[макс. элементы, получение новой матрицы] - C++
6. В данной квадратной целочисленной матрице порядка 17 указать индексы всех элементов с наибольшим значением. 9. Дана действительная...

Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы - C++
Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную...

Как найти максимальное число из элементов заданой матрицы - C++
как найти максимальное число из элементов заданой матрицы (6,6)

К элементам заданой матрицы прибавить ее наименший по модулю элемент - C++
Получить новую матрицу F(7,6) путем сложения всех елементов заданой матрици B(7,6) с ее найменшим по модулю елементом елементы целые от...

Для заданой квадратной матрицы сформулировать одномерный массив из ее диагональных элементов. - C++
Помогите пожалуйста решить задачу, написав код программы в С++ Для заданой квадратной матрицы сформулировать одномерный массив из ее...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.11.2011, 11:33 #2
Цитата Сообщение от rmb
Получить квадратную матрицу В порядка n, каждый элемент bij(i,j индексы) которой равен максимуму из элементов исходной квадратной матрицы А порядка n, расположенных в закрашенной области, определяемой индексами i, j, на рисунке.
как закрашенная область определяется индексами i и j ?
0
rmb
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 18
21.11.2011, 12:32  [ТС] #3
Цитата Сообщение от accept Посмотреть сообщение
как закрашенная область определяется индексами i и j ?
если взять 2 матрицы 5х5,то

элемент b[0][0] центральному элементу из массива А.(т.е. а[2][2])

элемент b[0][1] равен максимуму из а[2][2] и а[2][3]

элемент b[0][2] равен максимуму из а[2][2], а[2][3], а[2][1]

элемент b[0][3] равен максимуму из а[2][2], а[2][3], а[2][1], а[2][4]

элемент b[0][4] равен максимуму из а[2][2], а[2][3], а[2][1], а[2][4], а[2][0]
(это максимум из строки 2)

элемент b[1][0] равен максимуму из а[2][2] и а[3][2]

элемент b[1][1] равен максимуму из квадрата, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3]

элемент b[1][2] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1],a[3][1]

элемент b[1][3] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1], a[3][1], a[2][4], a[2][4]

элемент b[1][4] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1], a[3][1], a[2][4], a[2][4], а[3][0], a[2][0]
(это максимум из строк 2 и 3)

элемент b[2][0] равен максимуму из элементов a[2][2], a[3][2], a[1][2]


элемент b[2][1] равен максимуму из прямоугольника, который образуют элементы a[2][2], a[3][2], a[1][2], а[2][3], а[3][3], а[1][3],

элемент b[2][2] равен максимуму из квадрата, который образуют элементы а[2][2], a[3][2], a[1][2], а[2][3], а[3][3], а[1][3], а[2][1], а[3][1], а[1][1]

элемент b[2][3] равен максимуму из прямоугольника, который образуют элементы а[2][2], a[3][2], a[1][2], а[2][3], а[3][3], а[1][3], а[2][1], а[3][1], а[1][1], а[2][4], а[3][4], а[1][4]

элемент b[2][4] равен максимуму из элементов строк 2,3,1.

далее по аналогии.

в итоге, последний элемент матрицы B(b[4][4]) будет равен максимум из всех элементов матрицы А.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2011, 23:05 #4
Цитата Сообщение от rmb
а[2][2], a[3][2], a[1][2], а[2][3], а[3][3], а[1][3], а[2][1], а[3][1], а[1][1]
Код
а[1][1], а[2][1], а[3][1], a[1][2], а[2][2], a[3][2], а[1][3], а[2][3], а[3][3]
это то же самое, но смотрится лучше
лучше всё упорядочить, чтобы было вообще понятно, как брать элементы из исходной матрицы

задание должно быть яснее задано
Получить квадратную матрицу В порядка n, каждый элемент bij(i,j индексы) которой равен максимуму из элементов исходной квадратной матрицы А порядка n, расположенных в закрашенной области, определяемой индексами i, j, на рисунке.
про что речь ? как можно получить из подматрицы матрицы порядка n матрицу порядка n ?
0
rmb
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 18
22.11.2011, 12:55  [ТС] #5
Есть 2 матрицы например int a[5][5], b[5][5]={0};
мы, согласно тому, как я описал выше, выбираем из матрицы А и записываем их в матрицу B.
каждому элементу из матрицы B соответствует максимуму из какой-то области в матрице А. Размеры области зависят от индексов элемента матрицы B.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.11.2011, 14:15 #6
Цитата Сообщение от rmb
каждому элементу из матрицы B соответствует максимуму из какой-то области в матрице А. Размеры области зависят от индексов элемента матрицы B.
Цитата Сообщение от rmb
элемент b[0][0] центральному элементу из массива А.(т.е. а[2][2])
элемент b[0][1] равен максимуму из а[2][2] и а[2][3]
элемент b[0][2] равен максимуму из а[2][2], а[2][3], а[2][1]
элемент b[0][3] равен максимуму из а[2][2], а[2][3], а[2][1], а[2][4]
элемент b[0][4] равен максимуму из а[2][2], а[2][3], а[2][1], а[2][4], а[2][0]
(это максимум из строки 2)
надо по порядку писать, потому что нужно делать цикл, который будет переходить последовательно
максимум из третьей строки
для поиска максимума порядок элементов не важен, а для построения цикла - важен
0
rmb
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 18
22.11.2011, 18:20  [ТС] #7
что же делать?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.11.2011, 01:47 #8
Цитата Сообщение от rmb
лемент b[1][0] равен максимуму из а[2][2] и а[3][2]
элемент b[1][1] равен максимуму из квадрата, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3]
элемент b[1][2] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1],a[3][1]
элемент b[1][3] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1], a[3][1], a[2][4], a[2][4]
элемент b[1][4] равен максимуму из прямоугольника, который образуют элементы а[2][2], а[3][2], а[2][3], а[3][3], а[2][1], a[3][1], a[2][4], a[2][4], а[3][0], a[2][0]
(это максимум из строк 2 и 3)
чему равен элемент b[1][3] ? зачем сравниваеть элемент a[2][4] с самим собой ?
ты не в состоянии записать обход прямоугольников от левой верхней вершины до правой нижней вершины слева-направо ?
из-за того, что матрица задаётся произвольно, нужно знать алгоритм прохода, объединяющий все матрицы (в виде формулы)

Цитата Сообщение от rmb
определяемой индексами i, j, на рисунке.
где там на рисунке индексы i и j ?
задача должна быть точно поставлена
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2011, 01:47
Привет! Вот еще темы с ответами:

Матрица_формирование новой матрицы - C++
Вот условие задачи:Составить прогу,которая получает матрицу Х размерностью mxn. Прога в каждой строке определяет наименьший элемент и его...

получение новой матрицы - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждого столбца первой матрицы на...

Функция формирования новой матрицы - C++
Помогите составить функцию NewMatr, у меня она не правильная. Вот условие задачи:Составить прогу,которая получает матрицу Х размерностью...

Вывод части матрицы - C++
Напечатать таблицу, содержащую номера, фамилии и оценку студентов по высшей математике, а также подсчитать средний балл группы по этому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2011, 01:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru