La tornade matricielle est comme toute autre tornade: elle est constituée de choses tournant autour d'un centre. Dans ce cas, des éléments de la matrice au lieu de l'air.
Voici un exemple de tornade matricielle:
Tout d'abord, nous commençons par sectionner la matrice en anneaux carrés, chaque section est constituée d'éléments qui sont plus éloignés de la frontière de la même distance. Ces sections seront tournées dans le sens horaire autour du centre. Dans les vraies tornades, la gravité augmente vers le centre, tout comme l'étape de rotation dans une tornade à matrice: la section la plus à l'extérieur (la rouge) est tournée d'un pas, la suivante (la jaune) est tournée de 2, et ainsi de suite sur. Une étape de rotation est une rotation de 90 ° autour du centre.
Tâche:
Votre tâche, si vous l'acceptez, consiste à écrire une fonction ou un programme qui prend en entrée une matrice carrée, à lui appliquer l'effet de tornade puis à sortir la matrice résultante.
Contribution:
L'entrée doit être une matrice carrée d'ordre n
où n >= 1
. Aucune hypothèse n'est à faire sur les éléments de la matrice, ils pourraient être n'importe quoi.
Sortie:
Une matrice carrée du même ordre qui serait le résultat de l'application de l'effet tronado à la matrice d'entrée.
Exemples:
Une matrice d'ordre n = 1
:
[['Hello']] ===> [['Hello']]
Une matrice d'ordre n = 2
:
[[1 , 2], ===> [[5 , 1],
[5 , 0]] [0 , 2]]
Une matrice d'ordre 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]]
;)