El tornado matricial es como cualquier otro tornado: consiste en cosas que giran alrededor de un centro. En este caso, elementos de la matriz en lugar de aire.
Aquí hay un ejemplo de un tornado matricial:
Primero comenzamos seccionando la matriz en anillos cuadrados, cada sección consta de elementos que están más lejos del borde en la misma distancia. Estas secciones se rotarán en sentido horario alrededor del centro. En los tornados reales, la gravedad aumenta hacia el centro, y también lo hace el paso de rotación en un tornado matricial: la sección más externa (la roja) gira 1 paso, la siguiente (la amarilla) gira 2, y así en. Un paso de rotación es una rotación de 90 ° alrededor del centro.
Tarea:
Su tarea, si la acepta, es escribir una función o programa que tome como entrada una matriz cuadrada, aplicarle el efecto tornado y luego generar la matriz resultante.
Entrada:
La entrada debe ser una matriz cuadrada de orden n
donde n >= 1
. No se debe suponer acerca de los elementos de la matriz, podrían ser cualquier cosa.
Salida:
Una matriz cuadrada del mismo orden que sería el resultado de aplicar el efecto tronado a la matriz de entrada.
Ejemplos:
Una matriz de orden n = 1
:
[['Hello']] ===> [['Hello']]
Una matriz de orden n = 2
:
[[1 , 2], ===> [[5 , 1],
[5 , 0]] [0 , 2]]
Una matriz de orden n = 5
:
[[A , B , C , D , E], [[+ , 6 , 1 , F , A],
[F , G , H , I , J], [- , 9 , 8 , 7 , B],
[1 , 2 , 3 , 4 , 5], ===> [/ , 4 , 3 , 2 , C],
[6 , 7 , 8 , 9 , 0], [* , I , H , G , D],
[+ , - , / , * , %]] [% , 0 , 5 , J , E]]
;)