Project II: Transform Matrix
Last updated
Last updated
你将要创建一个类Transformation.java,并在这个类里设计两个静态方法,对一个二维数组进行相应变换:
transform()
convert()
两个方法的的签名和功能如下所示:
public static int[][] transform(int[][] matrix)
transform方法会对二维数组的元素进行修改,修改规则如下所示:
假设i和j分别表示matrix元素的行下标和列下标
如果i和j相等,matrix[i][j]变为元素值的平方
否则,如果i+j是奇数,matrix[i][j]变为(i+j)和元素值乘积的相反数
否则,如果i+j是偶数,matrix[i][j]变为(i-j)和元素值乘积的绝对值
最后返回更新后的矩阵newMatrix
。matrix矩阵需要保持不变。
Example:
经过变换后,newMatrx
如下所示:
2. public static int[][] convert(int[][] matrix)
将二维数组的行列互换的操作称为转置。例如,一个二维数组matrix如下所示:
将数组转置后,新的二维数组数组如下所示:
可以发现,原数组的第一行变成了新数组的第一列,第二行变成了第二列...第n行变成了新数组的第n列。
最后将转置后的数组沿着中心垂直翻转,得到最终矩阵newMatrix
并返回。
原数组matrix依然保持不变。
如果转置后的矩阵列数为奇数,中间一列保持不变(如示例所示)。
如果转置后的矩阵列数为偶数,每一列都要进行翻转。
在Transformation中实现transform()方法。
在Transformation中实现convert()方法。
在main()中测试两个函数。每个函数至少要准备两组数据测试。