[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();
}
}
}
// 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