![]() |
|
![]() ![]() ![]() |
|
Alagert |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Есть прямоугольная матрица, нужно ее траспонировать на месте.
Матрица записана построчно в одномерный массив. Для траспонирования нужно использовать этот же массив и можно еще некоторое количество переменных, число которых не зависит от размерности матрицы. Со слов моего препода, понял, что их должно быть 1 или 2. Погите плиз разобраться с этой задачей, очень нужно! Всем спасибо! --------------------
[color=blue]BORN TO BE ROOT#[/color] |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну, например, так:
идем по массиву смотрим на очередной элемент массива ищем в массиве то значение, которое там должно быть меняем их друг с другом идем дальше... пример: матрица 2х3 (в одномерном представлении): 1, 2, 3; 4, 5, 6 1-й шаг: смотрим на первый элемент - это (1,1) его не надо менять (так всегда будет на первом шаге) 2-й шаг: смотрим на второй элемент - это (1,2): там стоит 2, а должно быть 4, меняем их местами и так далее на самом деле, если подумать, то алгоритм поиска можно будет заменить на просто вычисление какого-нибудь аналитического выражения, но думать лень ![]() -------------------- qqq |
|||
|
||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 1 Всего: 56 |
а - массив [0..n], где n = m*m - 1, где m - размерность матрицы
temp - переменная транспонирование:
Это сообщение отредактировал(а) Illuminaty - 8.1.2006, 15:26 |
|||
|
||||
Alagert |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Твой вариант проходит для квадратных матриц. С ним все ясно. А как быть с прямоугольной матрицей? --------------------
[color=blue]BORN TO BE ROOT#[/color] |
||||
|
|||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 1 Всего: 56 |
Alagert, двойку тебе по алгебре в зачетку поставить надо
![]() Прямоугольные матрицы не транспонируются |
|||
|
||||
Alagert |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
У меня 5 по матану за все курсы ![]() Прямоугольная матрица замечательно траспонируется! Была матрица MxN, а стала NxM. Прямоугольные матрицы не обращаются(если не рассматривать случай псевдообратных матриц) --------------------
[color=blue]BORN TO BE ROOT#[/color] |
|||
|
||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 1 Всего: 56 |
||||
|
||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 1 Всего: 56 |
Признаю ошибку. Мои 5 по алгебре остались в прошлом веке. Действительно, перепутал с обратными... Позор на мою седую голову... Ладно хоть преподаватель не видит по алгебре - его бы удар хватил
![]() В связи с этим помогу с алгоритмом, но через некоторое время... |
|||
|
||||
Alagert |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Всем свойственно ошибаться. Огромное спасибо за обещание помочь. --------------------
[color=blue]BORN TO BE ROOT#[/color] |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Alagert тут надо еще уже со стороны языка думать, т.к. при транспонировании мтрица получается другой размерности, надо это предусматривать в объявлении переменных.
На не надо проссматривать каждый элемент, также можно исключить мнимую диагональ.
|
|||
|
||||
Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 1 Всего: 56 |
||||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Illuminaty массив массива строк. Или имеется ввиду вектор?
|
|||
|
||||
Alagert |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Для простоты есть интовый массив размерности m*n, туда построчно записана вся матрица. --------------------
[color=blue]BORN TO BE ROOT#[/color] |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
хм... в том, что я предложил, ошибочка...
иногда будет получаться, что число для замены надо взять из уже "отсортированой" части, а значит, что там будут не те числа, которые были изначально... -------------------- qqq |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Работает когда m > n, щас думаю над обратным случаем...
Это сообщение отредактировал(а) Mal Hack - 8.1.2006, 21:52 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |