Il tornado a matrice è proprio come qualsiasi altro tornado: consiste di cose che ruotano attorno a un centro. In questo caso, elementi della matrice anziché aria.
Ecco un esempio di tornado a matrice:
Innanzitutto iniziamo sezionando la matrice in anelli quadrati, ogni sezione è composta da elementi che sono più lontani dal bordo alla stessa distanza. Queste sezioni verranno ruotate in senso orario attorno al centro. Nei tornado reali, la gravità aumenta verso il centro, così come il passo di rotazione in un tornado di matrice: la sezione più esterna (quella rossa) viene ruotata di 1 gradino, quella successiva (quella gialla) viene ruotata di 2, e così su. Una fase di rotazione è una rotazione di 90 ° attorno al centro.
Compito:
Il tuo compito, se lo accetti, è quello di scrivere una funzione o un programma che accetta come input una matrice quadrata, applica l'effetto tornado ad essa e quindi emette la matrice risultante.
Ingresso:
L'input dovrebbe essere una matrice quadrata di ordine in n
cui n >= 1
. Non si deve supporre che gli elementi della matrice possano essere qualsiasi cosa.
Produzione:
Una matrice quadrata dello stesso ordine che sarebbe il risultato dell'applicazione dell'effetto tronado alla matrice di input.
Esempi:
Una matrice di ordine n = 1
:
[['Hello']] ===> [['Hello']]
Una matrice di ordine n = 2
:
[[1 , 2], ===> [[5 , 1],
[5 , 0]] [0 , 2]]
Una matrice di ordine 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]]
;)