Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java tìm chuyển vị ma trận (Transpose)

Giới thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu cách tìm chuyển vị của ma trận. Ma trận có sự sắp xếp hàng và cột. Ma trận m hàng n cột gọi là ma trận m × n. Chuyển vị ma trận được tìm thấy bằng cách hoán đổi hàng thành cột hoặc cột thành hàng.

Minh họa

Đầu vào:

The matrix is defined as: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4

Đầu ra mong muốn:

The transpose of the matrix is: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

Thuật toán

  1. Bắt đầu
  2. Khai báo 2 ma trận số nguyên: input_matrix và result_matrix
  3. Khởi tạo giá trị
  4. Duyệt từng phần tử bằng 2 vòng lặp for, gán phần tử tại [i][j] của ma trận gốc vào [j][i] của ma trận kết quả
  5. Hiển thị result_matrix
  6. Kết thúc

Ví dụ 1: Triển khai trong hàm main

public class MatrixTranspose {
    static final int matrix_size = 4;
    
    public static void main(String[] args) {
        int input_matrix[][] = {
            {1, 1, 1, 1},
            {2, 2, 2, 2},
            {3, 3, 3, 3},
            {4, 4, 4, 4}
        };
        
        System.out.println("The matrix is defined as: \n");
        for (int i = 0; i < matrix_size; i++) {
            for (int j = 0; j < matrix_size; j++) {
                System.out.print(input_matrix[i][j] + " ");
            }
            System.out.println();
        }
        
        int result_matrix[][] = new int[matrix_size][matrix_size];
        for (int i = 0; i < matrix_size; i++)
            for (int j = 0; j < matrix_size; j++)
                result_matrix[i][j] = input_matrix[j][i];
        
        System.out.println("\nThe transpose of the matrix is: ");
        for (int i = 0; i < matrix_size; i++) {
            for (int j = 0; j < matrix_size; j++) {
                System.out.print(result_matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}

Đầu ra

The matrix is defined as: 
1 1 1 1 
2 2 2 2 
3 3 3 3 
4 4 4 4 
The transpose of the matrix is: 
1 2 3 4 
1 2 3 4 
1 2 3 4 
1 2 3 4

Ví dụ 2: Tách hàm static (OOP)

public class MatrixTranspose {
    static final int matrix_size = 4;
    
    static void transpose(int input_matrix[][]) {
        int result_matrix[][] = new int[matrix_size][matrix_size];
        
        for (int i = 0; i < matrix_size; i++)
            for (int j = 0; j < matrix_size; j++)
                result_matrix[i][j] = input_matrix[j][i];
        
        System.out.println("\nThe transpose of the matrix is: ");
        for (int i = 0; i < matrix_size; i++) {
            for (int j = 0; j < matrix_size; j++) {
                System.out.print(result_matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        int input_matrix[][] = {
            {1, 1, 1, 1},
            {2, 2, 2, 2},
            {3, 3, 3, 3},
            {4, 4, 4, 4}
        };
        
        System.out.println("The matrix is defined as: \n");
        for (int i = 0; i < matrix_size; i++) {
            for (int j = 0; j < matrix_size; j++) {
                System.out.print(input_matrix[i][j] + " ");
            }
            System.out.println();
        }
        
        transpose(input_matrix);
    }
}

Đầu ra

The matrix is defined as: 
1 1 1 1 
2 2 2 2 
3 3 3 3 
4 4 4 4 
The transpose of the matrix is: 
1 2 3 4 
1 2 3 4 
1 2 3 4 
1 2 3 4