Tâche
Vous recevrez un entier positif et vous devrez produire un " graphique auto-complémentaire " avec autant de nœuds. Si vous ne savez pas ce qu'est un graphique auto-complémentaire, l'article de wikipedia ne vous aidera pas beaucoup, voici deux explications, une technique et une non technique.
Non technique
Un graphique est un ensemble de nœuds connectés par des lignes. Chaque paire de points peut être connectée par une ligne ou aucune. Le "complément" d'un graphe est le résultat de la prise d'un graphe et de la connexion de tous les nœuds qui ne sont pas connectés et de la déconnexion de tous les nœuds qui le sont.
Un graphe auto-complémentaire est un graphe dont le complément peut être réorganisé sous la forme de l'original. Vous trouverez ci-dessous un exemple de graphique auto-complémentaire et une démonstration de comment.
Voici un graphique à 5 nœuds:
Nous mettrons en évidence tous les endroits où les connexions pourraient aller avec des lignes pointillées rouges:
Nous allons maintenant trouver le complément du graphique en échangeant les bords rouge et noir:
Cela ne ressemble pas au graphique d'origine, mais si nous déplaçons les nœuds comme cela (chaque étape permute deux nœuds):
Nous obtenons le graphique d'origine! Le graphique et son complément sont le même graphique
Technique
Un graphe auto-complémentaire est un graphe isomorphe à son complément.
Caractéristiques
Vous recevrez un entier positif via la méthode qui vous convient le mieux. Et vous produirez un graphique dans la méthode que vous jugerez appropriée, cela inclut, mais sans s'y limiter , le formulaire de matrice d'adjacence , le formulaire de liste d'adjacence et bien sûr des images! Le graphique en sortie doit être son propre complément et avoir autant de nœuds que l'entrée entière. Si aucun graphique de ce type n'existe, vous devez générer une valeur falsifiée.
C'est du code-golf et vous devez viser à minimiser votre nombre d'octets.
Cas de test
Vous trouverez ci-dessous des images des sorties possibles pour plusieurs n
4
5
9
GraphData@{"SelfComplementary",{#,1}}&
, je pense que cela charge simplement quelques exemples de bas n
de la base de données de Wolfram, donc cela ne fonctionnera pas pour des entrées arbitrairement grandes.