Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
1

Упорядочить элементы главной диагонали перестановкой столбцов

08.01.2014, 16:48. Показов 2886. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Упорядочить элементы главной диагонали квадратичной матрицы(n x n) перестановкой столбцов n=5.
Элементы матрицы случайные действительные числа в диапазоне от -10 до 10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2014, 16:48
Ответы с готовыми решениями:

Перестановкой столбцов добиться расположения максимальных элементов на главной диагонали
Найти все самые нижние максимальные элементы в столбцах и перестановкой столбцов добиться их...

Упорядочить элементы на главной диагонали по возрастанию
Дана квадратная матрица целых чисел. Упорядочить элементы на главной диагонали по возрастанию

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

Методом вставки упорядочить элементы главной диагонали заданной квадратной матрицы
методом вставки упорядочить элементы главной диагонали заданной квадратной матрицы. определить...

10
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
08.01.2014, 18:06 2
Разве это возможно? Возьмем матрицу
3 4
1 2
перестановкой столбцов вы не сделаете так, чтобы элементы главной диагонали шли по возрастанию.
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 20:37  [ТС] 3
Добавлено через 26 минут
Цитата Сообщение от palva Посмотреть сообщение
Разве это возможно? Возьмем матрицу
3 4
1 2
перестановкой столбцов вы не сделаете так, чтобы элементы главной диагонали шли по возрастанию.
Для этого нужно найти максимальный элемент первой строки матрицы столбец в котором он находиться меняем местами с 1 столбцом, потом находим максимальный элемент 2 рядка который больше либо равен элементу с 1 рядка но уже без учета элемента с 1 столбца потом меняем местами 2 столбец со столбцом с максимальным елементом 2 рядка и тд

Неделю колдую над этой программой вечно какие то ошибки!
Если знаешь напиши эту функцию для меня она очень сложна опыта маловато!
0
Заблокирован
08.01.2014, 20:46 4
Spellsinger, у вас задание не конкретно. Вам привели пример когда непонято что делать дальше с матрицей.
А что должна сделать программа в таком случае:
4 6 7 8 1
9 9 8 9 8
7 7 7 7 4
1 3 4 5 3
6 8 9 7 7
1
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
08.01.2014, 20:46 5
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Цитата Сообщение от Spellsinger Посмотреть сообщение
потом находим максимальный элемент 2 рядка который больше либо равен элементу с 1 рядка но уже без учета элемента с 1 столбца
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:24  [ТС] 6
Цитата Сообщение от palva Посмотреть сообщение
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
Там ошибочка меньше либо равно.
А задание с методички и дословно оно выглядит так:"Заданная действи́тельная квадратная матрица размерности n х n. Переставить ее столбцы таким образом, чтобы упорядочить значения элементов главной диагонали. "

Добавлено через 2 минуты
Цитата Сообщение от palva Посмотреть сообщение
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
Реально может там опечатка ну тогда что примерно там требовалось?
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
08.01.2014, 21:30 7
Цитата Сообщение от Spellsinger Посмотреть сообщение
ну тогда что примерно там требовалось?
Цитата Сообщение от Spellsinger Посмотреть сообщение
Переставить ее столбцы таким образом
Моя версия: Переставить ее столбцы и строки таким образом...
Если переcтавить i-й и k-й столбец, а затем i-ю и k-ю строку, то это будет означать перестановку элементов главной диагонали. Всякие другие перестановки будут приводить к тому, что некоторые элементы уйдут с главной диагонали, а некоторые появятся. То есть формально это не будет "упорядочением значения элементов главной диагонали".
1
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:38  [ТС] 8
Цитата Сообщение от palva Посмотреть сообщение
Моя версия: Переставить ее столбцы и строки таким образом...
Если переcтавить i-й и k-й столбец, а затем i-ю и k-ю строку, то это будет означать перестановку элементов главной диагонали. Всякие другие перестановки будут приводить к тому, что некоторые элементы уйдут с главной диагонали, а некоторые появятся. То есть формально это не будет "упорядочением значения элементов главной диагонали".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <ctime>
 
const int N=5;
 
void swap(int& n1, int& n2);
 
int main()
{
    int** X = new int*[N];
    for (int i = 0; i < N; i++)
    {
        X[i] = new int[N];
        for (int j = 0; j < N; j++)
        {
            X[i][j] = rand() % 10;
            printf("%d ",X[i][j]);
        }
    
        printf("\n");
    }
 
    printf("\n");
 
    for (int i = 0; i < N; i++)
    {
        for (int k = i+1; k < N; k++)
            if (X[k][k] < X[i][i])
            {
                swap(X[i][k],X[k][k]);
                swap(X[k][i],X[i][i]);
                for (int m = 0; m < N; m++)
                    swap(X[m][i],X[m][k]);
            }
    }
 
    for (int z1 = 0; z1 < N; z1++)
    {
        for (int z2 = 0; z2 < N; z2++)
            printf("%d ",X[z1][z2]);
        printf("\n");
    }
 
  
 system("pause");
    return 0;
}
 
void swap(int& n1, int& n2)
 { int _tn = n1; n1 = n2; n2 = _tn; }
Типа такая программа?
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
08.01.2014, 21:40 9
Spellsinger, Только переставляются не отдельные элементы а полностью столбцы или строки.
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:51  [ТС] 10
Цитата Сообщение от palva Посмотреть сообщение
Spellsinger, Только переставляются не отдельные элементы а полностью столбцы или строки.
Да но если переставляются столбцы и строки тогда можно подобрать практически любую последовательность элементов!
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
08.01.2014, 22:16 11
Требуется, чтобы на диагонали были одни и те же элементы.

Добавлено через 15 минут
Цитата Сообщение от palva Посмотреть сообщение
Требуется, чтобы на диагонали были одни и те же элементы.
Это я к тому, что задача, как я понял слово упорядочить, этого требует. Один из способов это обеспечить -- это синхронно переставлять строки и столбцы с номерами i и k.
1
08.01.2014, 22:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2014, 22:16
Помогаю со студенческими работами здесь

Заменить элементы главной диагонали матрицы суммами элементов столбцов
Помогите пожалуйста. Заменить элементы главной диагонали матрицы целых чисел размерностью 5х5...

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

Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска
Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и...

все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали - на четных
все нулевые элементы размещены ниже главной диагонали на нечетных строках и выше главной диагонали...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru