Header Ads

[Matrix] Nhân 2 ma trận

Viết chương trình Java để nhân 2 ma trận

Các bước thực hiện để viết chương trình Java:

1. Viết phương thức để nhân 2 ma trận:

  • Sử dụng vòng for thứ nhất để duyệt các hàng của ma trận firstMatrix
  • Dùng 1 vòng lặp for thứ 2 để duyệt các cột của ma trận secondMatrix
  • Dùng 1 vòng lặp thứ 3 để nhân các phần tử ở dòng i của ma trận firstMatrix với các cột j của ma trận secondMatrix, lưu kết quả vào ma trận result

2. Trong hàm main, nhập vào 2 mảng để test các phương thức ở trên (sinh viên có thể tạo ma trận ngẫu nhiên như trong link này)

Code tham khảo của chương trình Java:

public class MatrixMultiplication {
    // Method to multiply two matrices
    public static int[][] multiply(int[][] firstMatrix, int[][] secondMatrix) {
        int rowsInA = firstMatrix.length;
        int columnsInA = firstMatrix[0].length;
        int columnsInB = secondMatrix[0].length;

        int[][] result = new int[rowsInA][columnsInB];

        for (int i = 0; i < rowsInA; i++) {
            for (int j = 0; j < columnsInB; j++) {
                for (int k = 0; k < columnsInA; k++) {
                    result[i][j] += firstMatrix[i][k] * secondMatrix[k][j];
                }
            }
        }

        return result;
    }

    public static void main(String args[]){
        // Sample matrices to be multiplied
        int [][] matrix1 = {{1,2},{3,4}};
        int [][] matrix2 = {{5,6},{7,8}};

        // Calling the method to multiply the matrices
        int [][] result = multiply(matrix1,matrix2);

        // Printing the resultant matrix after multiplication
        System.out.println("Resultant Matrix:");

        for(int i=0 ; i<result.length ; i++){
            for(int j=0 ; j<result.length ; j++){
                System.out.print(result[i][j]+" ");
            }
         /* To print in new line after each row of matrix
          * is printed completely.
          */
            System.out.println();               
       }    
    }
}

Không có nhận xét nào

Được tạo bởi Blogger.