问题
问答题
[说明]
信息处理过程中经常需要将图片或汉字点阵作旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示。
流程图a描述了对n*n矩阵的某种处理。流程图b是将矩阵A顺时针旋转90°形成矩阵B的具体算法。
[问题3]
在上述流程图a和b所示的算法中:
(1) 矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置
(2) A(i,j)后来又被复制到矩阵C中的哪个位置
(3) 填补流程图b中的空缺。
答案
参考答案:B(j,n-i+I) (2) C(n-i+1,n-j+1) (3) A(n-j+1,i)
解析: 对于[问题1]很容易得到矩阵沿顺时针方向旋转90°后所形成的矩阵为
[*]
对于[问题2]根据顺时针方向旋转90°保持矩阵不变,可以逐步推断出一些元素的值:
[*]
对于[问题3]根据上述流程图中的算法,不难发现,矩阵A第i行第i列的元素A(i,j)被复制到B的第n-i+1列第j行,即B(j,n-i+1)。A(i,j)后来又被复制到矩阵C中的第n-i+1行第n-j+1列,即C(n-i+1,n-j+1)。流程图b中,循环开始后,应该是将A(n-j+1,i)赋给B(i,j)。