在 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 度的不同方法。