Matriz girada 180 grados
Definir la función
1 |
matrizGirada180 :: Matrix a -> Matrix a |
tal que (matrizGirada180 p) es la matriz obtenida girando 180 grados la matriz p. Por ejemplo,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
λ> fromList 4 3 [1..] ( 1 2 3 ) ( 4 5 6 ) ( 7 8 9 ) ( 10 11 12 ) λ> matrizGirada180 (fromList 4 3 [1..]) ( 12 11 10 ) ( 9 8 7 ) ( 6 5 4 ) ( 3 2 1 ) λ> fromList 3 4 [1..] ( 1 2 3 4 ) ( 5 6 7 8 ) ( 9 10 11 12 ) λ> matrizGirada180 (fromList 3 4 [1..]) ( 12 11 10 9 ) ( 8 7 6 5 ) ( 4 3 2 1 ) |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import Data.Matrix ( Matrix , (!) , fromList , fromLists , matrix , ncols , nrows , toLists ) -- 1ª solución matrizGirada180 :: Matrix a -> Matrix a matrizGirada180 p = matrix m n f where m = nrows p n = ncols p f (i,j) = p!(m-i+1,n-j+1) -- 2ª solución matrizGirada180b :: Matrix a -> Matrix a matrizGirada180b p = fromLists (reverse (map reverse (toLists p))) -- 3ª solución matrizGirada180c :: Matrix a -> Matrix a matrizGirada180c = fromLists . reverse . map reverse . toLists |
Pensamiento
Bueno es recordar
las palabras viejas
que han de volver a sonar.Antonio Machado
Solución en Python.