Görev
Size pozitif bir tamsayı verilecek ve bu düğümlerle bir " kendini tamamlayıcı grafik " vermelisiniz . Kendini tamamlayan bir grafiğin ne olduğunu bilmiyorsanız, wikipedia makalesi size çok yardımcı olmayacaktır.Aşağıda iki açıklama vardır, teknik ve teknik olmayan.
Teknik Olmayan
Grafik, çizgilerle birbirine bağlanan bir düğüm kümesidir. Her bir nokta çifti bir çizgi veya hiçbiri ile birleştirilemez. Bir grafiğin "tamamlayıcısı", bir grafik almanın ve bağlı olmayan tüm düğümlerin bağlanmasının ve tüm düğümlerin bağlantısının kesilmesinin sonucudur.
Kendini tamamlayan bir grafik, tamamlayıcısı orijinalin şekline yeniden düzenlenebilen bir grafiktir. Aşağıda kendi kendini tamamlayan bir grafik ve bunun nasıl yapılacağına dair bir örnek verilmiştir.
İşte 5 düğümlü bir grafik:
Bağlantıların kırmızı noktalı çizgilerle gidebileceği tüm yerleri vurgulayacağız:
Şimdi kırmızı ve siyah kenarları değiştirerek grafiğin tamamlayıcısını bulacağız:
Bu orijinal grafiğe benzemez, ancak düğümleri bu şekilde hareket ettirirsek (her adım iki düğümü değiştirir):
Orijinal grafiği aldık! Grafik ve tamamlayıcısı aynı grafiktir
Teknik
Kendini tamamlayan bir grafik, tamamlayıcısına izomorfik bir grafiktir.
Özellikler
Size en uygun yöntemle pozitif bir tam sayı alırsınız. Ve uygun gördüğünüz herhangi bir yöntemde bir grafik çıktısı alacaksınız, ancak bunlarla sınırlı olmamak üzere Bitişiklik Matris Formu , Bitişiklik Listesi Formu ve elbette resimler! Çıkarılan grafik kendi tamamlayıcısı olmalı ve tamsayı girişi kadar sayıda düğüme sahip olmalıdır. Böyle bir grafik yoksa, bir falsy değeri çıkarmalısınız.
Bu kod golfüdür ve bayt sayınızı en aza indirmeyi amaçlamalısınız.
Test Durumları
Aşağıda birkaç n için olası çıkışların resimleri bulunmaktadır
4
5
9
GraphData@{"SelfComplementary",{#,1}}&
düşük için bazı örnekler yüklediğine inanıyorum n
, bu yüzden bu keyfi olarak büyük girdiler için işe yaramayacak.