Вопрос задан 25.07.2023 в 17:30. Предмет Информатика. Спрашивает Захарук Владик.

[JAVA] ДАНА ВЕЩЕСТВЕННАЯ МАТРИЦА РАЗМЕРОМ 10Х40. УПОРЯДОЧИТЬ ЕЕ СТРОКИ ПО УБЫВАНИЮ СУММЫ ИХ

ЭЛЕМЕНТОВ
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Щербакова Вика.

public class MyClass {

   public static void main(String args[]) {

       

       int dimention1 = 10;

       int dimention2 = 5;//40

       

       double[][] matrix = new double[dimention1][dimention2];

       

       fill(matrix);

       print(matrix);

       matrix = sort(matrix, getOrder(matrix));

       print(matrix);

   }

   

   

   private static double[][] sort(double[][]matrix, int[] order)

   {

       double[][] ret = new double[matrix.length][matrix[0].length];

       

       for (int i=0;i<matrix.length;i++ )

       {

           for (int j=0;j<matrix[i].length;j++ )

           {

               ret[i][j] = matrix[order[i]][j];

           }

       }

       return ret;

   }

   

   private static void fill(double[][] matrix)

   {

       for (int i=0;i<matrix.length;i++ )

       {

           for (int j=0;j<matrix[i].length;j++ )

           {

               matrix[i][j] = Math.random()*10;

           }

       }

   }

   

   private static int[] getOrder(double[][] matrix)

   {

       double[] sums = new double[matrix.length];

       for (int i=0;i<matrix.length;i++ )

       {

           for (int j=0;j<matrix[i].length;j++ )

           {

               sums[i]+=matrix[i][j];

           }

       }

       

       int[] order = new int[sums.length];

       for (int i=0;i<sums.length;i++ )

       {

           order[i] = i;

       }

       

       for (int i=0;i<sums.length;i++ )

       {

           for (int j=i+1;j<sums.length;j++ )

           {

               if(sums[i]<sums[j])

               {

                   double tmp1 = sums[i];

                   int tmp2 = order[i];

                   sums[i] = sums[j];

                   order[i] = order[j];

                   sums[j] = tmp1;

                   order[j] = tmp2;

               }

               

           }

       }

       return order;

   }

   

   private static void print(double[][] matrix )

   {

       for (int i=0;i<matrix.length;i++ )

       {

           double sum = 0.0;

           for (int j=0;j<matrix[i].length;j++ )

           {

                System.out.print(matrix[i][j]+" ");

                sum+=matrix[i][j];

           }

           System.out.println(" sum: "+sum);

       }

       System.out.println();

   }

}


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для упорядочивания строк вещественной матрицы размером 10х40 по убыванию суммы их элементов вам потребуется написать код на Java. Вот пример, как это можно сделать:

java
import java.util.Arrays; public class MatrixSorting { public static void main(String[] args) { double[][] matrix = new double[10][40]; // Заполнение матрицы случайными значениями (для примера) fillMatrix(matrix); System.out.println("Исходная матрица:"); printMatrix(matrix); // Упорядочиваем строки по убыванию суммы элементов sortRowsBySum(matrix); System.out.println("\nМатрица после упорядочивания:"); printMatrix(matrix); } private static void fillMatrix(double[][] matrix) { for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { matrix[i][j] = Math.random() * 100; // Заполнение случайными значениями от 0 до 100 (можно изменить диапазон) } } } private static void sortRowsBySum(double[][] matrix) { // Используем метод сравнения, чтобы отсортировать строки по убыванию суммы элементов Arrays.sort(matrix, (row1, row2) -> Double.compare(getSum(row2), getSum(row1))); } private static double getSum(double[] row) { double sum = 0; for (double element : row) { sum += element; } return sum; } private static void printMatrix(double[][] matrix) { for (double[] row : matrix) { for (double element : row) { System.out.printf("%.2f ", element); } System.out.println(); } } }

Примечание:

  • В приведенном примере мы заполняем матрицу случайными значениями для демонстрации. Вы можете заменить эту часть кода на свою логику заполнения матрицы, если у вас уже есть данные.
  • Мы используем метод Arrays.sort для сортировки строк матрицы, передавая собственный компаратор, который сравнивает строки по убыванию суммы их элементов.
  • Для суммирования элементов строки мы используем отдельный метод getSum, чтобы сделать код более читаемым.
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос