Предмет: Информатика, автор: yepboo4

Дана действительная квадратная матрица порядка 2n. Получить новую
матрицу, переставляя ее блоки размера п х п по часовой стрелке, начиная с блока
в левом верхнем углу.
Python

Ответы

Автор ответа: asilvejstruk
0

def rotate_matrix(matrix, p):

   # Create a new matrix to hold the rotated elements

   rotated_matrix = [[0 for _ in range(len(matrix))] for _ in range(len(matrix))]

   # Iterate through the blocks of the matrix

   for i in range(0, len(matrix), p):

       for j in range(0, len(matrix), p):

           # Iterate through the elements of the block

           for x in range(p):

               for y in range(p):

                   # Rotate the element and place it in the new matrix

                   rotated_matrix[j+y][len(matrix)-i-p+x] = matrix[i+x][j+y]

   return rotated_matrix

# Test the function

matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

print(rotate_matrix(matrix, 2))

# [[3, 4, 11, 12], [2, 8, 10, 16], [1, 7, 15, 14], [5, 6, 9, 13]]

Похожие вопросы
Предмет: Українська мова, автор: hdhdhdndud
Предмет: Геометрия, автор: mikhailuky