在 Java 中查找矩阵对角线元素的乘积


在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储相同数据类型的值。Java 中的矩阵只不过是一个多维数组,它表示多行多列。

这里我们给出了一个包含一组元素的矩阵,根据问题陈述,我们必须找到对角线元素的乘积。

在本文中,我们将了解如何使用 Java 编程语言来实现这一点。

为您展示一些实例

实例 1

给定矩阵 =

21 	22	23
24	25	26
27	28	29
  • 主对角线元素为:21、25 和 29

  • 反对角线元素为:23、25 和 27

  • 两个对角线元素的乘积结果为:15225 和 15525

实例 2

给定矩阵 =

9 	2	2	4
1	7	2	6
2	2	4	3
1	4	7	8
  • 主对角线元素为:9、7、4 和 8

  • 反对角线元素为:4、2、2 和 1

  • 两个对角线元素的乘积结果为:2016 和 16。

实例 3

给定矩阵 =

1 	2	3
4	5	6
7	8	9
  • 主对角线元素为:1、5 和 9

  • 反对角线元素为:3、5 和 7

  • 两个对角线元素的乘积结果为:45 和 105

算法

  • 步骤 1 - 声明并初始化一个名为输入矩阵的 3x3 方形矩阵。

  • 步骤 2 - 声明并初始化两个变量 mainDiagonalProd 和 antiDiagonalProd,分别用于存储矩阵主对角线和反对角线上的值的乘积。

  • 步骤 3 - 通过遍历矩阵并在行和列相等的所有索引处将值相乘来计算主对角线上值的乘积。

  • 步骤 4 - 然后通过遍历矩阵并在行和列的总和等于矩阵长度减 1 的所有索引处将值相乘来计算反对角线上值的乘积。

  • 步骤 5 - 最后,打印计算出的主对角线和反对角线的乘积。

语法

Java 中的 length 方法返回给定矩阵的长度。

以下是它的语法 -

inputMatrix.length

其中,“inputMatrix”指的是给定的矩阵。

多种方法

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

  • 使用矩阵元素的静态初始化

  • 使用用户定义的方法

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

方法 1:使用矩阵元素的静态初始化

在这种方法中,矩阵元素将在程序中初始化。然后根据算法计算该矩阵对角线元素的乘积。

这里我们分别找到了两个对角线元素的乘积值。

示例

public class Main{
   public static void main(String[] args) {
      
      //declare and initiate a square matrix
      int[][] inputMatrix = {{2, 1, 3}, {4, 9, 6}, {1, 8, 4}};
      
      //declare and initiate two integer variable to store both the product values
      int mainDiagonalProd = 1;
      int antiDiagonalProd = 1;
      
      //find out main diagonal product
      for (int i = 0; i < inputMatrix.length; i++) {
         mainDiagonalProd *= inputMatrix[i][i];
      }
      
      //find out anti-diagonal product
      for (int i = 0; i < inputMatrix.length; i++) {
         antiDiagonalProd *= inputMatrix[i][inputMatrix.length - i - 1];
      }
      
      // print the result
      System.out.println("Main Diagonal Product: " + mainDiagonalProd);
      System.out.println("Anti-Diagonal Product: " + antiDiagonalProd);
   }
}

输出

Main Diagonal Product: 72
Anti-Diagonal Product: 27

方法 2:使用用户定义的方法

在这种方法中,矩阵元素将在程序中初始化。然后通过将矩阵作为参数传递来调用用户定义的方法,并在方法内部根据算法计算该矩阵对角线元素的乘积。

这里我们同时找到了两个对角线元素的乘积值。

示例

public class Main {
   public static void main(String[] args) {
      
      //declare and initiate a square matrix
      int[][] inputMatrix = {{12, 13, 14, 3}, {2, 23, 11, 1}, {53, 23, 23, 56}, {10, 1, 4, 5}};
      
      // Call the user-defined method
      int result = prodDiogonalElements(inputMatrix);
      
      // Print the result
      System.out.println("The multiplication of diagonal elements is: " + result);

   }
   
   // user-defined method to find out product value of diagonal elements
   public static int prodDiogonalElements(int[][] mat){
      
      // declare and initiate a integer variable to store the product value
      int result = 1;
      
      // initiate the loop and multiply the elements of diagonal 
      for (int a = 0; a < mat.length; a++){
         result *= mat[a][a];
      }
      return result;
   }
}

输出

The multiplication of diagonal elements is: 31740

在本文中,我们探索了使用 Java 编程语言查找矩阵对角线元素乘积的不同方法。

更新于: 2023 年 5 月 4 日

606 次浏览

启动你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.