Matrices latinas
Una matriz latina de orden n es una matriz cuadrada de orden n tal que todos sus elementos son cero salvo los de su fila y columna central, si n es impar; o los de sus dos filas y columnas centrales, si n es par.
Definir la función
latina :: Int -> Array (Int,Int) Int
tal que (latina n) es la siguiente matriz latina de orden n:
- Para n impar:
| 0 0... 0 1 0 ... 0 0| | 0 0... 0 2 0 ... 0 0| | 0 0... 0 3 0 ... 0 0| | .........................| | 1 2..............n-1 n| | .........................| | 0 0... 0 n-2 0 ... 0 0| | 0 0... 0 n-1 0 ... 0 0| | 0 0... 0 n 0 ... 0 0|
- Para n par:
| 0 0... 0 1 n 0 ... 0 0| | 0 0... 0 2 n-1 0 ... 0 0| | 0 0... 0 3 n-2 0 ... 0 0| | ................................| | 1 2.....................n-1 n| | n n-1 .................... 2 1| | ................................| | 0 0... 0 n-2 3 0 ... 0 0| | 0 0... 0 n-1 2 0 ... 0 0| | 0 0... 0 n 1 0 ... 0 0|
Por ejemplo,
λ> elems (latina 5) [0,0,1,0,0, 0,0,2,0,0, 1,2,3,4,5, 0,0,4,0,0, 0,0,5,0,0] λ> elems (latina 6) [0,0,1,6,0,0, 0,0,2,5,0,0, 1,2,3,4,5,6, 6,5,4,3,2,1, 0,0,5,2,0,0, 0,0,6,1,0,0]


