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编程语言探讨了不同的方法来检查矩阵是否为单位矩阵。