Descargo de responsabilidad: no conozco ninguna solución que no sea de fuerza bruta
Un cuadrado greco-latino es, para dos conjuntos de la misma longitud , una disposición de celdas , cada una de las cuales contiene un par único (en todo el cuadrado) de un elemento del primer conjunto y un elemento del segundo conjunto, como que todos los primeros elementos y todos los segundos elementos de los pares son únicos en su fila y columna. Los conjuntos más comunes utilizados son, como se podría adivinar, las primeras letras de los alfabetos griego y latino.
Aquí hay una foto de un cuadrado greco-latino 4x4:
Los cuadrados greco-latinos son tan útiles como parecen (el artículo de Wikipedia menciona "diseño de experimentos, programación de torneos y construcción de cuadrados mágicos"). Su tarea es, dado un entero positivo , generar un cuadrado greco-latino.
Entrada
Un entero positivo ; se garantiza que existe un cuadrado greco-latino (es decir, ).
Salida
Un cuadrado greco-latino con longitud lateral n como una matriz bidimensional, una matriz de matrices, una matriz aplanada o con salida directa.
Notas
- No tiene que usar los alfabetos griego y latino específicamente; por ejemplo, también se permite generar pares de enteros positivos.
- Si elige usar un alfabeto que no se puede extender arbitrariamente, debe (en teoría; su código no tiene que terminar antes de la muerte por calor del universo) admitir una longitud lateral máxima de al menos 20.
Este es el código de golf , por lo que gana el código más corto.