Zadanie
Otrzymasz dodatnią liczbę całkowitą i musisz wygenerować „ wykres komplementarny ” z tyloma węzłami. Jeśli nie wiesz, czym jest wykres uzupełniający się w Wikipedii, artykuł na pewno Ci nie pomoże, więc poniżej znajdują się dwa wyjaśnienia, techniczne i nietechniczne.
Nietechniczne
Wykres to zestaw węzłów połączonych liniami. Każda para punktów może być połączona jedną linią lub żadną. „Uzupełnienie” wykresu jest wynikiem pobrania wykresu i połączenia wszystkich węzłów, które nie są połączone, i odłączenia wszystkich węzłów, które są.
Samouzupełniający się wykres to wykres, którego dopełnienie można przestawić na kształt oryginału. Poniżej znajduje się przykład komplementarnego wykresu i pokaz tego, jak to zrobić.
Oto wykres z 5 węzłami:
Podkreślimy wszystkie miejsca, do których połączenia mogłyby się udać, za pomocą czerwonych kropkowanych linii:
Teraz znajdziemy uzupełnienie wykresu, zamieniając czerwone i czarne krawędzie:
Nie wygląda to tak jak na oryginalnym wykresie, ale jeśli przesuniemy węzły w ten sposób (każdy krok zamienia dwa węzły):
Otrzymujemy oryginalny wykres! Wykres i jego uzupełnienie są tym samym wykresem
Techniczny
Samouzupełniający się wykres jest wykresem izomorficznym do swojego uzupełnienia.
Dane techniczne
Otrzymasz dodatnią liczbę całkowitą za pomocą dowolnej metody, która najbardziej Ci odpowiada. I będzie wyjściowe wykres w jakikolwiek sposób Państwo uznają za stosowne, to obejmuje, ale nie ogranicza się do sąsiedztwa Matrix Form , adjacency formie wykazu, zdjęcia i oczywiście! Wyprowadzany wykres musi być własnym dopełnieniem i mieć tyle węzłów, ile wejściowych liczb całkowitych. Jeśli taki wykres nie istnieje, musisz podać wartość fałszowania.
To jest golf golfowy i powinieneś dążyć do zminimalizowania liczby bajtów.
Przypadki testowe
Poniżej znajdują się zdjęcia możliwych wyników dla kilku n
4
5
9
GraphData@{"SelfComplementary",{#,1}}&
, uważam, że po prostu ładuje kilka przykładów niskiego poziomu n
z bazy danych Wolfram, więc nie zadziała to dla dowolnie dużych danych wejściowych.