Un golígono (técnicamente llamado "isógono serial de 90 grados) es cualquier polígono con todos los ángulos rectos, cuyos longitud de los lados son una secuencia de números enteros. Los golígonos fueron inventados y nombrados por Lee Sallows, y popularizados por A.K. Dewdney en la columna de Scientific American (Smith) de 1990. Hay variaciones de la definición de golígonos que implican permitir que los lados se crucen, usando secuencias diferentes a números enteros consecutivos, y considerando ángulos distintos a 90°.
En cualquier golígono, todos los lados horizontales tienen la misma paridad, así como también pasa en los lados verticales. Por lo tanto, el número n de lados debe permitir la solución en un sistema de ecuaciones.
De esto se desprende que n debe ser múltiplo de 8.
El número de soluciones a este sistema de ecuaciones puede ser calculado eficientemente usando funciones generadoras (Secuencia A007219 en OEIS) pero encontrar el número de soluciones que corresponde a un polígono cuyos lados no se cruzan parece ser más difícil.
Solo hay un golígono de 8 lados (mostrado en la imagen); con el cual se puede embaldosar el plano mediante una rotación en 180°. Esto se verifica usando el criterio de Conway.
Aunque Lee Sallows creó su propio programa para encontrar souciones y Donald Knuth también creó alguno, no han trascendido al público.
El problema puede ser resuelto en pocos pasos al margen de la presentación.
En primer lugar no es complicado constatar que los segmentos que avanzan hacia la derecha deben sumar lo mismo que lo segmentos que avanzan hacia la izquierda, pues solo así se logra quedar en el punto de partida. Sucede igualmente con los segementos que avanzan en vertical, luego el primer paso se reduce a calcular cuanto deben sumar dichos segmentos para cada n.
Sea la siguiente secuencia la representación de los 8 segmentos: ABCDEGFH. Así si decidimos que empezamos con horizontales: A-C-E-F son los segmentos con un avance horizontal que tendrán valores 1,3,5,7. Entonces aplicando lo antedicho, debe encontrarse todas las secuencias tal que una o más variables sumen lo mismo que el resto, (1+3+5+7)/2= 8.
Igualmente se procede con las variables de avance vertical, siendo: -B-D-G-H con valores a sumar: 2,4,6,8, se deberán buscar todas las secuencias de variables que sumen: (2+4+6+8)/2 = 10.
El segundo paso consiste en encontrar todas las secuencias cuyos términos con los pesos indicados totalicen el valor señalado en el primer paso.
Por ejemplo, para el Golígono n=1, la secuencia completa a usar será: ABCDEFGH, para horizontales será: ACEG y para verticales será: BDFH.
Para horizontales solo hay 2 secuencias posibles:
AG (1+7) = 8
CE (3+5) = 8
Para verticales igualmente solo hay 2 secuencias posibles:
BH (2+8) = 10
DF (4+6) = 10
Si se decide que las secuencias obtenidas son las que avanzan hacia un sentido, el resto de variables que no intervienen en la secuencia completa (para cada orientación) son las variables que avanzan hacia el sentido opuesto.
En tercer lugar puede entenderse que un golígono se genera, con cualquier conjugación consistente de usar cada una de las secuencias horizontales con cada una de las secuencias verticales.
Dado que el número de secuencias halladas será siempre el doble (unas son espejo de las otras), el número de golígonos posibles para cada n, será el producto de la mitad de variaciones horizontales por la mitad de variaciones verticales. Para n=1, variaciones horizontales= 2, y verticales= 2, luego para n=1 solo hay 1 golígono. Para diferentes n= (h*v) hay:
El último lugar hay que trasladar o convertir la secuencia generada (con las 4 partes reunidas) en una secuencia que utilice como variables, las letras: D, I, B, S (de Derecha, Izquierda, Baja y Sube).
En la imagen de la derecha se adjunta el golígono resultante del siguiente ejemplo.
Por ejemplo. Sea la secuencia: ACMO la secuencia horizontal tomada hacia la derecha, los segmentos hacia la izquierda serán los que falten de la serie: ACEGIKMO, es decir EGIK. Y sea BDFHP, la secuencia vertical tomada hacia abajo, la secuencia hacia arriba serán las que falten de la serie: BDFHJLNP, es decir: JLN
Podemos ordenarlos en las siguientes líneas en vertical:
D - I . B - S <-- Los 4 sentidos de avance.
ACMO-EGIK.BDFHP-JLN <-- Las 4 secuencias obtenidas.
ABCDEFGHIJKLMNOP <-- Secuencia ordenada para facilitar el traslado visualmente.
D D D D <-- Traslado de la secuencia de segmentos a la Derecha.
D D I I I I D D <-- Traslado de la secuencia de segmentos a la Izquierda.
DBDBIBIBI I D DB <-- Traslado de la secuencia de segmentos que Bajan.
DBDBIBIBISISDSDB <-- Secuencia final tras el último traslado de segmentos que Suben.
Todavía resulta de interés dibujar el gráfico que genera el golígono, con lo que se recurre a interpretar la secuencia de salida obtenida.
Mediante un bucle se va recorriendo la secuencia obteniendo un carácter en cada ciclo. El tamaño del segmento viene dado por la posición del carácter escrutado (+1). Y el carácter escrutado determina la dirección y sentido de avance.
X = 0; Y = 0
dX = 0; dY = 0
Bucle para k desde 0 hasta Secuencia.Length -1
Seleccionar caso para Secuencia.Position(k)
Caso 'D'; dX += k+1
Caso 'I'; dX -= k+1
Caso 'B'; dY += k+1
Caso 'S'; dY -= k+1
Fin casos
TrazarLinea(X,Y,dX,dY, Color)
X = dX; Y= dY
Siguiente
Puede notarse que el sistema seguido permite poder dibujarlo a mano en un papel cuadriculado, con solo seguir el orden de la secuencia de órdenes.
En la imagen de la derecha se adjunta el golígono resultante de la secuencia: DBIBDBDBDBDBDBDBIBDBDSISIBDSISIS.
Debajo de estas líneas dos más de 48 segmentos. En el dibujo se ha incluido sus respectivas secuencias.