Aufgabe
Sie erhalten eine positive Ganzzahl und müssen mit so vielen Knoten einen " selbstkomplementären Graphen " ausgeben . Wenn Sie nicht wissen, was eine sich selbst ergänzende Grafik ist, hilft Ihnen der Wikipedia-Artikel nicht viel. Im Folgenden finden Sie zwei Erklärungen, eine technische und eine nicht-technische.
Nicht technisch
Ein Graph ist eine Menge von Knoten, die durch Linien verbunden sind. Jedes Punktepaar kann durch eine oder keine Linie verbunden werden. Das "Komplement" eines Graphen ist das Ergebnis der Aufnahme eines Graphen und der Verbindung aller nicht verbundenen Knoten und der Trennung aller verbundenen Knoten.
Ein selbstkomplementäres Diagramm ist ein Diagramm, dessen Komplement in die Form des Originals geändert werden kann. Nachfolgend finden Sie ein Beispiel für ein sich selbst ergänzendes Diagramm und eine Demonstration dessen, wie.
Hier ist eine Grafik mit 5 Knoten:
Wir werden alle Stellen, an denen Verbindungen möglich sind, mit rot gepunkteten Linien markieren:
Jetzt finden wir die Ergänzung des Graphen, indem wir den roten und den schwarzen Rand vertauschen:
Dies sieht nicht wie das Originaldiagramm aus, aber wenn wir die Knoten wie folgt verschieben (jeder Schritt tauscht zwei Knoten aus):
Wir erhalten das Originaldiagramm! Der Graph und sein Komplement sind der gleiche Graph
Technisch
Ein selbstkomplementärer Graph ist ein Graph, der zu seinem Komplement isomorph ist.
Spezifikationen
Sie erhalten eine positive Ganzzahl nach der für Sie am besten geeigneten Methode. Und Sie werden ein Diagramm in der von Ihnen als angemessen erachteten Methode ausgeben, einschließlich, aber nicht beschränkt auf Adjacency Matrix Form , Adjacency List Form und natürlich Bilder! Das ausgegebene Diagramm muss ein eigenes Komplement sein und so viele Knoten haben wie die Ganzzahleingabe. Wenn keine solche Grafik vorhanden ist, müssen Sie einen falschen Wert ausgeben.
Dies ist Code-Golf und Sie sollten darauf abzielen, Ihre Byteanzahl zu minimieren.
Testfälle
Unten sehen Sie Bilder von möglichen Ausgaben für mehrere n
4
5
9
GraphData@{"SelfComplementary",{#,1}}&
, werden meiner Meinung nach einfach einige Beispiele für low n
aus der Wolfram-Datenbank geladen, sodass dies für beliebig große Eingaben nicht funktioniert.