Tarea
Se le dará un número entero positivo y deberá generar un " gráfico autocomplementario " con esa cantidad de nodos. Si no sabe qué es un gráfico autocomplementario, el artículo de wikipedia no lo ayudará mucho, a continuación encontrará dos explicaciones, una técnica y otra no técnica.
No técnico
Un gráfico es un conjunto de nodos que están conectados por líneas. Cada par de puntos se puede conectar por una línea o ninguna. El "complemento" de un gráfico es el resultado de tomar un gráfico y conectar todos los nodos que no están conectados y desconectar todos los nodos que sí lo están.
Un gráfico autocomplementario es un gráfico cuyo complemento se puede reorganizar en la forma del original. A continuación se muestra un ejemplo de un gráfico autocomplementario y una demostración de cómo.
Aquí hay un gráfico con 5 nodos:
Destacaremos todos los lugares donde las conexiones podrían ir con líneas punteadas rojas:
Ahora encontraremos el complemento del gráfico intercambiando los bordes rojo y negro:
Esto no se parece al gráfico original, pero si movemos los nodos de esta manera (cada paso intercambia dos nodos):
¡Obtenemos el gráfico original! El gráfico y su complemento son el mismo gráfico.
Técnico
Un gráfico autocomplementario es un gráfico que es isomorfo a su complemento.
Especificaciones
Recibirá un número entero positivo a través del método que más le convenga. ¡Y generará un gráfico en cualquier método que considere apropiado, esto incluye , entre otros, el formulario de matriz de adyacencia , el formulario de lista de adyacencia y, por supuesto, las imágenes! El gráfico generado debe ser su propio complemento y tener tantos nodos como la entrada entera. Si no existe tal gráfico, debe generar un valor falso.
Este es el código de golf y debe intentar minimizar el recuento de bytes.
Casos de prueba
A continuación se muestran imágenes de posibles salidas para varios n
4 4
5 5
9 9
GraphData@{"SelfComplementary",{#,1}}&
, creo que simplemente carga algunos ejemplos de baja n
de la base de datos de Wolfram, por lo que esto no funcionará para entradas arbitrariamente grandes.