在一个 $n\times m$ 的 $n$ 行 $m$ 列的数字矩阵中,将这个矩阵顺时针旋转 $90^\circ$,那么原矩阵中第 $i$ 行第 $j$ 列($i$ 和 $j$ 都是从 $1$ 开始计数)在旋转之后的矩阵中对应的行列位置是( )
别急着套公式,先拿个小矩阵(比如3×4)在草稿纸上顺时针转一下,盯着原来的(1,1)和(3,2)看它们跑到了哪,规律瞬间就出来了。
最容易栽跟头的就是搞混行列方向,顺手选了A或者D,把行当成列、列当成行,或者把旋转方向搞反了。还有看到n和m混在一起,下意识以为要加减1或者用n-i+1去算列号,其实旋转90度后,原来的行号i只会变成新的列号,原来的列号j只会变成新的行号,跟n、m的大小没关系,别被题目里的大矩阵吓住,小例子才是破题关键。
这道题考的是二维数组(矩阵)顺时针旋转90度时的坐标变换规律,属于基础但极易掉坑的概念题。
先说核心概念:矩阵旋转90度,本质上就是把原来的“行”变成旋转后的“列”,原来的“列”变成旋转后的“行”,同时因为顺时针转,原来的行号越大,转过去后列号越小(从右往左数)。所以新坐标的列号一定是用n减去原来的行号再加1,即n-i+1;而新坐标的行号就是原来的列号j,因为列号从1开始数,转过去后就是从1开始数行。结论就是:原(i,j)→新(j, n-i+1)。
命题人为什么爱考这个?因为它看起来像纯计算,其实是在考你对“行列对应关系”的直觉。他们喜欢把n和m混在一起,让你以为要复杂运算,或者故意把选项写成j+1、i-1这种看似合理实则错误的变形,诱导你死算。真正的破题心法是:别一上来就列方程,先拿一个最小的矩阵(比如3行4列)在纸上转一下,标出几个关键点(左上角、右下角、中间某点),看看它们转到了哪。你会发现规律非常清晰:原来的行i转过去成了列n-i+1,原来的列j转过去成了行j。这个规律跟矩阵具体填什么数字无关,只跟行列编号有关。
避坑指南:千万别被选项A(第j行第i列)迷惑,那是逆时针转90度或者转180度的结果;选项B和D里的j+1、i-1这种加减1是瞎凑的,旋转90度不会改变行/列的起始计数方式,只是方向反了,所以列号要用n-i+1而不是i-1。另外,题目里说“i和j都是从1开始计数”,一定要记住这个前提,如果从0开始,公式就得加1减1,但这里不用。
考频与趋势:根据历年真题统计,矩阵旋转/坐标变换这类题目在BCSP-X、CSP-J/S的考查频率约为每2-3年出现一次,常作为单选题的压轴或次后题,属于高频考点。近年来命题人更倾向于把这类基础题放在需要快速判断的环节,考察学生对基本变换的直觉。
预测:基于现有数据和经验,未来这类题目大概率会继续以“顺时针旋转90度”或“逆时针旋转90度”的形式出现,也可能稍微变体成“旋转180度”或“转置”,但核心都是考行列编号的对应关系。只要记住“行变列、列变行,顺时针列号用n-i+1”这个口诀,遇到类似题基本就能秒杀。暂无足够依据预测更细的变体形式,但掌握这个规律足以应对绝大多数考法。