阅读以下说明和流程图,回答问题1至问题3。 [说明] 信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示: 流程图2-1描述了对n*n矩阵的某种处理。流程图2-2是将

admin2008-05-10  36

问题 阅读以下说明和流程图,回答问题1至问题3。
   [说明]
   信息处理过程中经常需要将图片或汉字点阵做旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示:
   
   流程图2-1描述了对n*n矩阵的某种处理。流程图2-2是将矩阵A顺时针旋转90°形成矩阵B的具体算法。
   

选项

答案[*]

解析 信息处理过程中经常需要将图片点阵或汉字点阵做旋转处理。这种方法可以简化为对n*n矩阵的旋转处理。其中,n应该是一个变量,运行时由该程序模块外部导入具体的值。编程技术的一个基本要点就是对通用的情况找出规律,再按规律进行处理。
   试题中给出了“按顺时针方向旋转90°”的例子。在这种场合,用案例说明比叙述定义更为简单。人们也不难在案例的基础上推广理解。
   对于问题1,人们不难获得另一个案例:
   
   对于问题2,根据按顺时针方向旋转90°保持矩阵不变,可以逐步推断出一些元素的值:
   
   对于问题3,矩阵A按顺时针方向旋转90°得到矩阵B,矩阵B按顺时针方向旋转 90°得到矩阵C。
   矩阵A的第1行复制到矩阵B的第n列。
   矩阵A的第2行复制到矩阵B的第n-1列。
   矩阵A的第3行复制到矩阵B的第n-2列。
   按照上述规律,矩阵A的第i行应复制到矩阵B的第n-i+1列。
   A(i,j)是矩阵A的第i行第j列的元素,它应复制到矩阵B的第n-i+1列中,第j行元素。即A(i,j)→B(j,n-i+1)。
   矩阵B的第1行复制到矩阵C的第n列。
   矩阵B的第2行复制到矩阵C的第n-1列。
    按照上述规律,矩阵B的第j行应复制到矩阵C的第n-j+1列。
   B(j,n-i+1)是矩阵B的第j行第n-i+1列的元素,它应复制到矩阵C的第n-j+1列中,第n-i+l行元素。即B(j,n-i+1)→C(n-i+l,n-j+1)。
   反之,矩阵B的第1列来自矩阵A的第n行。
   矩阵B的第2列来自矩阵A的第n-1行。
   按照上述规律,矩阵B的第j列来自矩阵A的第n-j+1行。
   B(i,j)是矩阵B的第j列中第i行元素,它来自矩阵A的第n-j+1行中第i列的元素,即B(i,j)←A(n-j+1,i)。
   另一种更理性的方法是:在导出按顺时针方向旋转90°的变换
   A(i,j)→B(j,n-i+1)
   后,就能通过推导再导出其他多次变换。可以将上述变换写成:
   A(x,y)→B(u,v)
   
   从而,B(j,n-i+1)可以直接变换到C(n-i+l,n-j+1)。而且,可以直接导出A(n-j+1),i)→B(i,j)。
转载请注明原文地址:https://kaotiyun.com/show/FsjZ777K
0

随机试题
最新回复(0)