在 Java 中将矩阵旋转 180 度?

javaobject oriented programmingprogramming

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

根据问题陈述,我们必须将给定的矩阵旋转 180 度。这意味着我们必须垂直对称地交换给定矩阵的行。

让我们深入研究这篇文章,了解如何使用 Java 编程语言来实现这一点。

向您展示一些实例

实例 1

假设原始矩阵是

{
    {10, 20, 30},
    {40, 50, 60},
    {70, 80, 90}
}

将矩阵旋转 180 度后:

{
    {90, 80, 70},
    {60, 50, 40},
    {30, 20, 10}
}

实例-2

假设原始矩阵是

{
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
}

将矩阵旋转 180 度后:

{
    {9, 8, 7},
    {6, 5, 4},
    {3, 2, 1}
}

实例-3

假设原始矩阵是

{
    {11, 22, 33},
    {44, 55, 66},
    {77, 88, 99}
}

将矩阵旋转 180 度后:

{
    {99, 88, 77},
    {66, 55, 44},
    {33, 22, 11}
}

算法

步骤 1 - 声明并初始化一个整数类型的多维数组。

步骤 2 - 声明两个整数类型变量来存储给定矩阵的行和列的长度。

步骤 3 - 采用嵌套 for 循环将矩阵旋转 180 度,并将新矩阵存储到另一个空矩阵中。

步骤 4 - 将结果矩阵打印为输出。

语法

要获取数组的长度(该数组中的元素数),数组有一个内置属性,即 length

下面引用它的语法

array.length

其中,"array" 指的是数组引用。

多种方法

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

  • 通过使用数组元素的静态初始化

  • 通过使用用户定义的方法

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

方法 1:通过使用 pow() 函数对矩阵进行静态初始化

在此方法,矩阵元素将在程序中初始化。然后按照算法用矩阵的平方替换矩阵元素。这里我们将使用内置的 Pow() 函数来获取元素的平方。

示例

public class Main{
   public static void main(String[] args){

      //声明一个具有一些随机值的矩阵
      int[][] inputMatrix = { 
         {10, 20, 30},
         {40, 50, 60},
         {70, 80, 90}
      };

      //declare a variable to store the row count
      int r = inputMatrix.length;

      //声明一个变量来存储行数
      int c = inputMatrix[0].length;

      //声明一个空矩阵
      int[][] rotatedMAt = new int[r][c];

      //采用嵌套 for 循环将矩阵旋转 180 度
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            rotatedMAt[i][j] = inputMatrix[r - i - 1][c - j - 1];
         }
      }

      //打印给定的矩阵
      System.out.println("Given Matrix:");
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            System.out.print(inputMatrix[i][j] + " ");
         }
         System.out.println();
      }

      //打印旋转矩阵
      System.out.println("Rotated- 180 degree Matrix:");
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            System.out.print(rotatedMAt[i][j] + " ");
         }
         System.out.println();
      }
   }
}

输出

Given Matrix:
10 20 30 
40 50 60 
70 80 90 
Rotated- 180 degree Matrix:
90 80 70 
60 50 40 
30 20 10

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

在此方法中,数组元素将在程序中初始化。然后通过将数组作为参数传递来调用用户定义方法,并根据算法在方法内部将矩阵旋转 180 度。

示例

public class Main{

   //用户定义的方法将矩阵旋转 180 度
   public static void Rotate(int[][] inputMatrix){

      //声明一个变量来存储行数
      int r = inputMatrix.length;
    
      //声明一个变量来存储行数
      int c = inputMatrix[0].length;
    
      //声明一个空矩阵
      int[][] rotatedMAt = new int[r][c];
    
      //使用嵌套 for 循环将矩阵旋转 180 度
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            rotatedMAt[i][j] = inputMatrix[r - i - 1][c - j - 1];
         }
      }
      
      //打印给定的矩阵
      System.out.println("Given Matrix:");
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            System.out.print(inputMatrix[i][j] + " ");
         }
         System.out.println();
      }
      
      //打印旋转矩阵
      System.out.println("Rotated- 180 degree Matrix:");
      for (int i = 0; i < r; i++){
         for (int j = 0; j < c; j++){
            System.out.print(rotatedMAt[i][j] + " ");
         }
         System.out.println();
      }
   }
   public static void main(String[] args){
      
    //声明一个具有一些随机值的矩阵
    int[][] inpMatrix = {
        {22, 12, 54},
        {2, 76, 23},
        {124, 67, 34}
    };
    
    //调用用户定义的方法
    Rotate(inpMatrix);
   }
}

输出

给定矩阵:
22 12 54
2 76 23
124 67 34
旋转 180 度矩阵:
34 67 124
23 76 2
54 12 22

在本文中,我们探索了使用 Java 编程语言将矩阵旋转 180 度的不同方法。


相关文章