Estoy buscando un algoritmo que forme un equilibrado (o casi completa) de los cuadrados latinos, en la que cada elemento es horizontal y vecino de cualquier otro elemento exactamente dos veces, y una vertical vecino de cualquier otro elemento exactamente dos veces.
He encontrado un ejemplo, para n = 5), pero no estoy claro sobre un par de pasos:
Paso 1: Escribir 1 2 ... n como la primera fila
12345
Paso 2: Para i incluso en la primera fila, de relleno en la diagonal desde la esquina superior izquierda a la inferior derecha, comenzando con el yo y alternando con i - 1
12345
1 3
2
1
Paso 3: Para i impar y a menos de n en la primera fila de relleno en la diagonal desde la parte superior derecha a la inferior izquierda, comenzando con i y alternando con i + 1
12345
41 3
3 2
1
Paso 4: Rellenar n para el principal fuera de la diagonal
12345
4153
3 52
5 1
5
Paso 5: Para la última columna escriba n n-2 n-1 n-1 2 3 ...
12345
4153
3 524
5 1
5 2
Paso 6: Para el que incluso las entradas de la última columna de relleno, en la diagonal desde la esquina superior izquierda a la inferior derecha, comenzando con el yo y alternando con i - 1
?
Paso 7: Completar por la simetría alrededor de la diagonal principal
?
Para n = 5, se obtiene:
12345
24153
31524
45231
53412
Preguntas...
[RE: Paso 5] yo era capaz de llenar en que parte de la plaza, pero no estoy seguro de lo que habría de venir después de n-3 en un mayor tamaño de la secuencia, ya que sería ir n n-2 n-1 n-3 ??? ... 1 2
[RE: Paso 6] incluso las entradas de los números, o que se refieren a posiciones incluso en la columna? Es el "yo" en este caso el número en la parte superior izquierda o es el incluso la entrada? No veo cómo el completado de la plaza corresponde a las instrucciones en este paso.
[RE: Paso 7] ¿Qué significa "completo por la simetría alrededor de la diagonal principal" significa?
De lo contrario, si hay menos involucrados algoritmo de equilibrio de un cuadrado latino, me gustaría saber cómo va.