English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-сборник

Java Set-сборник

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Java-программа умножает две матрицы, передавая их функции

Java полные примеры

В этом курсе вы узнаете, как использовать функции в Java для умножения двух матриц.

Для выполнения умножения матриц, количество столбцов первой матрицы должно быть равно количеству строк второй матрицы. В нашем примере, это

c1 = r2

Размер окончательного матричного множителя составляет r1 x c2, то есть

product[r1][c2]

Вы также можетеУмножение двух матриц без функций

Пример: программа, использующая функцию для умножения двух матриц

public class MultiplyMatrices {
    public static void main(String[] args) {
        int r1 = 2, c1 = 3;
        int r2 = 3, c2 = 2;
        int[][] firstMatrix = { {3, -2, 5}, {3, 0, 4} };
        int[][] secondMatrix = { {2, 3}, {-9, 0}, {0, 4} };
        //  Умножение двух матриц
        int[][] product = multiplyMatrices(firstMatrix, secondMatrix, r1, c1, c2);
        //  显示 результат
        displayProduct(product);
    }
    public static int[][] multiplyMatrices(int[][] firstMatrix, int[][] secondMatrix, int r1, int c1, int c2) {
        int[][] product = new int[r1][c2];
        for(int i = 0; i < r1; i++) {
            for (int j = 0; j < c2; j++) {
                for (int k = 0; k < c1; k++) {
                    product[i][j] += firstMatrix[i][k] * secondMatrix[k][j];
                }
            }
        }
        return product;
    }
    public static void displayProduct(int[][] product) {
        System.out.println("Произведение двух матриц: ");
        for(int[] row : product) {
            for (int column : row) {
                System.out.print(column + "    ");
            }
            System.out.println();
        }
    }
}

При выполнении этой программы вывод будет:

Произведение двух матриц:
24    29    
6    25

В上面的 программе есть две функции:

  • multiplyMatrices() - умножение двух данных матриц и возвращение произведения матриц

  • displayProduct() - вывод матрицы произведения на экран.

Множение происходит следующим образом:

|-    (a11 * b11) + (a12 * b21) + (a13 * b31)    (a11 * b12) + (a12 * b22) + (a13 * b32)    -|
|_    (a21 * b11) + (a22 * b21) + (a23 * b31)    (a21 * b12) + (a22 * b22) + (a23 * b32)    _|

В нашем примере это происходит следующим образом:

|-    (3 * 2) + (-2 * -9) + (5 * 0) = 24    (3 * 3) + (-2 * 0) + (5 * 4) = 29    -|
|_    (3 * 2) + (0 * -9) + (4 * 0) = 6    (3 * 3) + (0 * 0) + (4 * 4) = 25    _|

 

Java полные примеры