LINUX.ORG.RU

В чем проблемы-то?

for (int i = 0; x < size; i++) for (int j = 0; j < i; j++) { tmp = a[i][i]; a[i][j] = a[j][i]; a[j][i] = tmp; }

Может где ошибки, компилятора под рукой, но идея такая.

anonymous
()

>У кого какие идею по этому поводу..?

у меня. если реализация столь примитивного алгоритма вызывает проблемы — не надо тебе пытаться программировать. поучись ещё лет 10-15, тогда повтори попытку.

mirage
()

Я бы ещё понял если бы обратную там искать матрицу и то это элементарно. а уж матриц не суметь транспонировать - это как-то... грустно.

anonymous
()

Если транспонирование нужно не для оптимизации доступа к памяти при интенсивных вычислениях с большими матрицами, то транспонировать не нужно - достаточно просто смотреть на матрицу, как на хранящуюся в памяти в другом виде, чтоб она была уже транспонирована.

GPFault ★★
()
Ответ на: комментарий от Pi

А на двумерную матрицу можно смотреть как на одномерную, тогда надобность в транспонировании отпадает.

wfrr ★★☆
()
Ответ на: комментарий от Pi

> одна из самых глубоких мыслей в треде :)

вполне достаточно повернуть голову на 90 градусов перпендикулярно своей оси.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> вполне достаточно повернуть голову на 90 градусов перпендикулярно своей оси.

не путай собственные и несобственные движения

dilmah ★★★★★
()
Ответ на: комментарий от mirage

> у меня. если реализация столь примитивного алгоритма вызывает проблемы — не надо тебе пытаться программировать. поучись ещё лет 10-15, тогда повтори попытку.

Хм.., друг мой =)
А вы не расслабляетесь таким путем?? Объясняю - когда тупо сидишь целый день и кодишь на работе, когда башка уже забита и не работает выход один - размяться, мы всем отделом (5 человеков) выходим и играем в сокс часик в обеденный перерыв=)))) как не глупо звучит, но помогает как разрядка и отдых, а потом делаем какую-нибудь левую задачу по программированию, выйграет тот кто сделает её оптимизированней..
Транспонирование матрицы - проблем не вызывает, но на тот алгоритм, который окажется оптимизированней всего я бы посмотрел..

dragon_djanic ★★
() автор топика
Ответ на: комментарий от klalafuda

ну если есть абстракция головы и оси, то без проблем

Pi ★★★★★
()
Ответ на: комментарий от dragon_djanic

>А вы не расслабляетесь таким путем?? Объясняю — когда тупо сидишь целый день и кодишь на работе, когда башка уже забита и не работает выход один — размяться, мы всем отделом (5 человеков) выходим и играем в сокс часик в обеденный перерыв=))))

а я всем отделом (состоящим из одного меня) иду куда-то в гости. или переключаюсь на другую задачу — помогает.

>на тот алгоритм, который окажется оптимизированней всего я бы посмотрел..

запросто: поставить спецGPU (geometry processing unit) и отдать задачу ему. не думаю, что можно быстрее. %-)

mirage
()
Ответ на: комментарий от Die-Hard

так вот эта задача давно решена кучей способов, но аффтар поста же не озадачился поиском, припёрся сюда, чтобы мы тут гуглем поработали.

mirage
()
Ответ на: комментарий от mirage

У тебя любимое занятие как я понял учить людей, что им надо делать. Автор задал конкретный вопрос. Я не думаю что он задал его, чтобы ты почитал ему мораль на тему, когда и как ему надо программировать. Я думаю в реале ты бы поберег свои зубы, прежде чем выёживатся со своими идиотскими попытками указывать людям, что им надо делать.

anonymous
()
Ответ на: комментарий от mirage

> так вот эта задача давно решена кучей способов, но аффтар поста же не озадачился поиском, припёрся сюда, чтобы мы тут гуглем поработали.

Чиорт! палево..)) Да погуглить без труда можно было бы, но! зачем когда есть ЛОР? (то гугль ниразу не рулит) когда можно почитать обсуждение и поржать)) когда попмимо самого ответа в треде 99% других ответов будут - посылкой тебя сходить в зад)) Но среди них можно всё таки вычитать что-то нужное.. Я ржал)

dragon_djanic ★★
() автор топика

Млин... Ты бы хоть написал, в каком виде матрицу хранишь... Тогда бы действительно было о чем подумать и что тебе сказать.

roof ★★
()

Когда я писал в институте свою библиотеку для линейной алгебры, пришел к выводу, что транспонировать матрицу нецелесообразно, поэтому хранил флажок transposed. Все зависит от количества обращений к элементам и транспонирований.

rymis ★★
()
Ответ на: комментарий от dragon_djanic

> сделает её оптимизированней..

Ок. ;-) Предлагаю класс Matrix, у которого transpose() (транспонирование на месте) будет выполняться константное время, тогда как время выполнения других операций:

get(int, int) - O(1)
set(int, int, double) - O(1)
add(Matrix) - O(N*M)

alexsaa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.