Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
.NET 4.x

Упорядочить матрицу по неубыванию суммы их элементов

17.03.2014, 21:05. Показов 1236. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не поможете мне с:
Дана матрица вещественных чисел. Упорядочить ее строки по неубыванию суммы их элементов.
Всё бы ничего, но выделенная часть - незнаю как - да вообще не понимаю что тут делать (как это выглядит в математике)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2014, 21:05
Ответы с готовыми решениями:

Упорядочить строки матрицы по неубыванию суммы их элементов
О здравствуйте великие шаманы :senor: Помогите с решением данной задачки: Нужно на C# Дана вещественная матрица размером 5×6....

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

Упорядочить строки матрицы по неубыванию суммы их элементов
Здравствуйте, задание следующее: Дана вещественная матрица размером 5×6. Упорядочить ее строки по неубыванию суммы их элементов. вот...

14
Заблокирован
17.03.2014, 21:10
Лучший ответ Сообщение было отмечено KFU4132133 как решение

Решение

KFU4132133, раз неясна математика, поясняю её на примере:
На входе матрица:

Code
1
2
3
1 6 7
0 8 1
9 8 7
считаем суммы строк эл-тов:
Code
1
2
3
1+6+7 = 14
0+8+1 = 9
9 +8 +7 = 24
неубывание - каждый следующий больше или равен предыдущему.
Значит, надо изменитьь порядок следования первой и второй строки:
Code
1
2
3
0 8 1
1 6 7
9 8 7
1
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
17.03.2014, 21:22
Лучший ответ Сообщение было отмечено KFU4132133 как решение

Решение

KFU4132133,
Осторожно! Открытие спойлера мешает почувствовать вкус программирования
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static int[,] OrderRowsBySumDescending(int[,] matrix)
{
    int n = matrix.GetLength(0), m = matrix.GetLength(1);
    KeyValuePair<int, int>[] rowsSums = new KeyValuePair<int, int>[n];
    for (int i = 0; i < n; i++)
    {
        int sum = 0;
        for (int j = 0; j < m; j++)
            sum += matrix[i, j];
        rowsSums[i] = new KeyValuePair<int, int>(i,sum);
    }
    rowsSums = rowsSums.OrderByDescending(e => e.Value).ToArray();
    int[,] result = new int[n,m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            result[i, j] = matrix[rowsSums[i].Key, j];
    return result;
}
2
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
17.03.2014, 21:54  [ТС]
rattrapper, я открыл(((((((( - аааа мои глаза( - спасибо - всё равно - мало что понятно)
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
17.03.2014, 22:01
KFU4132133,
Все мы делаем выбор. Мне лично интересно решать задачи, решение которых не сразу приходит в голову

Добавлено через 2 минуты
KFU4132133, в 12 строке удалите целиком слово Descending, и в названии метода тоже, а то я по невнимательности выложил по убыванию, а не по возрастанию, как требовалось
0
Заблокирован
18.03.2014, 09:43
KFU4132133, замените
C#
1
KeyValuePair
на два одномерных массива - так должно быть понятнее.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        static int[,] Sort(int[,] matrix)
        {
            int n = matrix.GetLength(0), m = matrix.GetLength(1);
            int[] summ = new int[n];
            int[] count = new int[n];
           // count = Enumerable.Range(0, n).ToArray();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                    summ[i] += matrix[i, j];
                count[i] = i;
            }
 
            int[,] result = new int[n, m];
            Array.Sort(summ, count);
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    result[i, j] = matrix[count[i], j];
 
            return result;
        }

Не по теме:

rattrapper, можешь посоветовать литературу, где хорошо описаны коллекции?

1
18.03.2014, 11:32

Не по теме:

Ev_Hyper, Albahari J., Albahari B. - C# 5.0 in a Nutshell

0
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
18.03.2014, 19:45  [ТС]
rattrapper, решил делать сам - только вот не знаю как задать двумерную матрицу, где в ячейках можно хранить дробные числа, если задать так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
//Часть ввода
            Console.Write("Введите количество строк: ");
            int n = int.Parse(Console.ReadLine());
            Console.Write("Введите количество столбцов: "); //длина строки
            int m = int.Parse(Console.ReadLine()) + 1; // еденица нужна для расширенной матрицы, в дополнительную ячейку будут складываться суммы всех остальных элементов
            Console.WriteLine("Введите интервал для случайных чисел [A;B)");
            Console.Write("A = ");
            int a = int.Parse(Console.ReadLine());
            Console.Write("B = ");
            int b = int.Parse(Console.ReadLine());
 
            //Создание матрицы
            double[] array = new double[n,m];
то выходит ошибка(((
-
В паскале можно было задавать матрицу в матрице - хотя я таким способом никогда не пользовался - и так выходила двумерная матрица - одна отвечала за строки, вторая за столбцы - нельзя ли как нить так реализовать? И как потом такую матрицу выводить на экран?
---
И да сразу вопрос задам, если использовать генератор случайных чисел, то почти всегда все числа получаются одинаковыми - как это исправить?
---
Как убрать Е-XX у double числа вконце? Ограничение по количеству символов не помогло, всё равно выводит((((
0
Заблокирован
18.03.2014, 23:09
KFU4132133, в примерах выше показано, как создать двумерный массив:

C#
1
 int[,] result = new int[n, m];
Цитата Сообщение от KFU4132133 Посмотреть сообщение
И да сразу вопрос задам, если использовать генератор случайных чисел, то почти всегда все числа получаются одинаковыми - как это исправить?
как вы его используете?

C#
1
2
3
4
5
6
7
8
9
10
11
            int[,] matrix = new int[5, 6];
            Random rand = new Random();
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    matrix[i, j] = rand.Next(0, 10);
                    Console.Write(matrix[i, j] + " ");
                }
                Console.WriteLine();
            }
0
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
19.03.2014, 06:59  [ТС]
Ev_Hyper, А в матрицу можно будет вкладывать числа с запятой?
---
Именно так я и использую генератор случайных чисел, только интервалы даю большие от -100 до 100 например, и у меня почти что все элементы с одинаковыми числами...
0
Заблокирован
19.03.2014, 08:43
KFU4132133, код свой выкладываете
Цитата Сообщение от KFU4132133 Посмотреть сообщение
А в матрицу можно будет вкладывать числа с запятой?
тогда тип задайте как double
0
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
19.03.2014, 17:56  [ТС]
Ev_Hyper, вот я так и делаю - и у меня красным подчёркивает - а код я уже выложил: Упорядочить матрицу по неубыванию суммы их элементов
0
Заблокирован
19.03.2014, 18:06
KFU4132133, уф. У вас там ошибки:
вместо:
C#
1
double[] array = new double[n,m];
надо:
C#
1
double[,] array = new double[n,m];
Если вы выложите код полностью, исправить ошибки можно будет куда быстрее.
0
4 / 4 / 2
Регистрация: 23.02.2014
Сообщений: 142
19.03.2014, 20:42  [ТС]
Ev_Hyper, так я же только начал, это пока что весь код был), вопрос - я вот хочу сделать расширенную матрицу - туда будут складываться суммы всех остальных элементов строки - мне потом надо просто отсортировать по этому элементу строки в порядке неубывания? - то есть если сумма предыдущей строки больше чем этой, то поменять все элементы 1 строки на все элементы 2 строки - для этого я так понимаю нужен будет цикл в:
C#
1
2
3
4
первый for {
второй for {}
сюда вставить сортировочный цикл
}
так?
Если конечно понятно написал)
---
a11 a12 a13 a14
a21 a22 a23 a24
туда будут складывать суммы, а как отсортировать после по этим элементам строки?
0
Заблокирован
19.03.2014, 20:56
KFU4132133, я не знаю стандартного способа сортировки двухмерного массва, поэтому и заносил суммы и индексы в отдельные массивы. И их уже сортировал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2014, 20:56
Помогаю со студенческими работами здесь

Массив: Упорядочить строки матрицы по неубыванию суммы их элементов
2. Дана матрица размером N×M, N,M&lt;50. Упорядочить ее строки по неубыванию суммы их элементов. Нарисуйте блок-схему алгоритма.

упорядочить матрицу по неубыванию суммы элементов строк
упорядочить матрицу по неубыванию суммы элементов строк...

Упорядочить строку по неубыванию суммы её элементов
Здравствуйте! Объясните, пожалуйста, что значит это выражение &quot;Упорядочить строку по неубыванию суммы её элементов.&quot;? Мозг на грани...

Упорядочить строки матрицы по неубыванию суммы их элементов
дана вещественная матрица размером N*M. Упорядочить ее строки по неубыванию суммы их элементов

Упорядочить строки матрицы по неубыванию суммы их элементов
Дана вещественная матрица размером 10х10. Упорядочить её строки по не убыванию суммы их элементов.


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru