Cuadrada A América es un cuadrado que no se ha repetido símbolos ya sea en la X o columnas de Y . Por ejemplo:
ABCD
DABC
CDAB
BCDA
es uno de esos cuadrados. Observe cómo cada columna y fila contiene una permutación de las mismas 4 letras.
Sin embargo, nuestro cuadrado latino tiene un problema: siDABC
ABCD
tuviera que girar la segunda fila ( ) 1 a la izquierda, terminaría con , que es idéntico a la permutación que se encuentra arriba. Si es imposible rotar 1 columna / fila y obtener otra columna / fila, entonces consideramos que el cuadrado es seguro para la rotación .
Por ejemplo:
ABCD
BDAC
CADB
DCBA
Es segura la rotación. La cuadrícula tiene las siguientes propiedades:
- El punto [0, N] usa el enésimo símbolo
- El punto [0, N] y [N, 0] son siempre el mismo símbolo . (Me gustaría decir también que [x, y] y [y, x] también son siempre la misma letra, pero no puedo probarlo)
Su tarea es imprimir 1 cuadrado latino seguro para la rotación, cuando se pasa N. No me importa si imprime letras, números, una lista o una matriz 2D. Si usa números, la columna superior y la fila deben ser 0,1,2,3,...
(en ese orden). Si usa letras, entonces debe serA,B,C,D,....
Por ejemplo, si su entrada fue 4, debe imprimir:
0,1,2,3 0,1,2,3
1,3,0,2 or 1,0,3,2
2,0,3,1 2,3,1,0
3,2,1,0 3,2,0,1
No hay cuadrados latinos seguros para la rotación de tamaño menor que 4. No me importa lo que haga su programa si N es menor que 4. Para los curiosos, el número de cuadrados seguros para la rotación es (comenzando en 4): 2,5,5906,(too long to calculate)
Este es un código de golf , ¡así que trate de hacer las respuestas lo más cortas posible en su idioma favorito!
1,2,3,...
?
N
debido a una calidad de número aleatorio insuficiente?)