Java 检查矩阵是否是单位矩阵

Java 检查矩阵是否是单位矩阵

矩阵不仅仅是一组按矩形布局排列的数据元素,它可以被视为二维数组。

单位矩阵是一个正方形矩阵,其主对角线元素全为1,其余元素为0。根据问题描述,我们需要检查给定的矩阵是否为单位矩阵。

让我们深入了解本文,了解如何使用Java编程语言实现。

展示一些实例

实例-1

Suppose we have a matrix
   | 1 0 0 |
A= | 0 1 0 |
   | 0 0 1 |

我们的主对角线上有1,其余都是0。因此这是一个单位矩阵

示例-2

Suppose we have a matrix
   | 1 0 0 |
A =| 0 1 1 |
   | 0 0 1 |

我们在主对角线上有1,但在非对角线元素上还有另一个1。因此,它不是一个单位矩阵。

实例-3

Suppose we have a matrix
    | 1 0 0 0|
A = | 0 0 1 0|
    | 0 0 1 0|
    | 0 0 0 1|

我们的主对角线上没有1,其余都是0。因此这不是一个单位矩阵

步骤

步骤1 - 存储矩阵。

步骤2 - 现在调用检查函数遍历矩阵,并检查行与列相同时的位置是否为1,其余位置为0。

步骤3 - 输出结果。

多个方法

我们提供了不同的解决方法。

  • 通过使用静态初始化矩阵

  • 通过使用动态初始化矩阵

让我们逐个查看程序及其输出。

方法1:通过使用静态初始化矩阵

在这个方法中,矩阵在程序中被初始化,然后我们检查矩阵的主对角线上是否有1,其余元素是否为零。

示例

import java.util.Scanner;
public class Main {
   public static void main(String[] args) {

      // Matrix to be checked
      int mat[][] = {
         { 1, 0, 0 },
         { 0, 1, 0 },
         { 0, 0, 1 },
      };

      // Print results
      if (identityMatCheck(mat))
         System.out.println("The matrix is an identity matrix.");
      else
         System.out.println("The matrix is not an identity matrix.");
   }

   //user defined method
   static boolean identityMatCheck(int mat[][]) {

     // Traverses the matrix
      for (int i = 0; i < mat.length; i++) {
         for (int j = 0; j < mat.length; j++) {

            // Checks if the principal diagonal elemets are 1
            if (i == j && mat[i][j] != 1)
               return false;

            // Checks if the rest elements are 0
            else if (i != j && mat[i][j] != 0)
               return false;
         }
      }
      return true;
   }
}

输出

The matrix is an Identity matrix.

方法-2:通过使用矩阵的动态初始化

在这种方法中,我们要求用户输入他们所期望的矩阵大小,并检查矩阵是否为单位矩阵。

示例

import java.util.Scanner;
public class Main {
   public static void main(String[] args) {
      System.out.println("Enter number of matrix rows-");
      Scanner sc = new Scanner(System.in);
      int size = sc.nextInt();
      int mat[][] = new int[size][size];

      // Enter Matrix Elements
      System.out.println("Enter the matrix elements");
      for (int i = 0; i < mat.length; i++) {
         for (int j = 0; j < mat.length; j++) {
            mat[i][j] = sc.nextInt();
         }
      }
      // Print results
      if (identityMatCheck(mat))
         System.out.println("The matrix is an identity matrix.");
      else
         System.out.println("The matrix is not an identity matrix.");

   }
   static boolean identityMatCheck(int mat[][]) {
      // Traverses the matrix
      for (int i = 0; i < mat.length; i++) {
         for (int j = 0; j < mat.length; j++) {

            // Checks if the principal diagonal elemets are 1
            if (i == j && mat[i][j] != 1)
               return false;
            // Checks if the rest elemets are 0
            else if (i != j && mat[i][j] != 0)
               return false;
         }
      }
      return true;
   }
}

输出

Enter number of matrix rows-
4
Enter the matrix elements
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
The matrix is an identity matrix.

在本文中,我们通过使用Java编程语言探讨了不同的方法来检查矩阵是否为单位矩阵。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程