Photo by Fancycrave.com from Pexels

Nastya Is Transposing Matrices

题目大意就是说有两个\(n \times m\)的矩阵A和B,现在可以从矩阵A中取出一个方阵并对这个方阵进行转置,问能否通过这种操作来使得A转换为B。

首先,转置是不会影响被转置方阵的主对角线的,他只会对被转置方阵的副对角线上的元素的顺序造成影响。因此,要判断A是否能通过这样的操作转换为B,只需要判断在每一个指向右上方方向的直线上,A和B的所具有的元素是否相同即可。比方说:

\[ \begin{aligned} A_1= \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7&8&9 \end{bmatrix} \ , B_1= \begin{bmatrix} 1&2&3\\ 4&7&6\\ 5&8&9 \end{bmatrix} \end{aligned} \]

这两个矩阵之间,A1是可以通过转置得到B1的,因为它们右上角方向上的数分别是1;2,4;3,5,7;6,8;9,只是排列顺序不一样。

但下面这两个矩阵就不行了:

\[ \begin{aligned} A_2= \begin{bmatrix} 1&2&3\\ 4&5&6\\ 7&8&9 \end{bmatrix} \ , B_2= \begin{bmatrix} 1&2&3\\ 9&7&6\\ 5&8&9 \end{bmatrix} \end{aligned} \]

其中原因不再赘述。

代码如下: