You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现NxN矩阵指定正方形区域的顺时针90度旋转

N×N矩阵指定正方形区域顺时针旋转90度实现

我有一个N×N矩阵,需要选取该矩阵的特定区域,将其顺时针旋转90度。旋转区域的定义需满足以下条件:

  • 左上角坐标为(a, b)
  • 右下角坐标为(a + c, b + c)
  • 该正方形区域的边长为c + 1

例如当输入参数a=2、b=3、c=3时,输出效果如下所示:
示例

实现代码

原代码存在缩进错误,旋转操作需要放在for循环内部才能执行所有输入的旋转指令,修正后的代码如下:

import numpy as np
# 输入矩阵边长N
N = int(input())
# 输入需要执行的旋转操作次数S
S = int(input())
# 初始化N×N矩阵,元素值为0到N²-1
arr = np.array(range(0,N*N))
arr.shape = N,N
for i in range(S):
    a,b,c = [int(x) for x in input().split()]
    # 截取指定正方形区域,顺时针旋转90度后赋值回原位置
    # np.rot90默认逆时针旋转,指定axes=(1,0)可实现顺时针旋转效果
    arr[a:a+c+1,b:b+c+1] = np.rot90(arr[a:a+c+1,b:b+c+1], axes=(1,0))
print(arr)

内容的提问来源于stack exchange,提问作者Royal Deer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 09:45:00