Dihedral grup , karenin simetri grubudur , yani bir kareyi dönüşler ve yansımalar yoluyla kendisine dönüştüren hareketlerdir. 8 elemandan oluşur: 0, 90, 180 ve 270 derecelik dönüşler ve yatay, dikey ve iki diyagonal eksen boyunca yansımalar.
Resimler Larry Riddle'ın bu güzel sayfasından .
Bu zorluk şu hareketleri oluşturmakla ilgilidir: iki hareket verildiğinde, bunları birbiri ardına yapmaya eşdeğer olan hareketin çıktısını alın. Örneğin, hamle 7 ve ardından hamle 4 yapmak hamle 5 ile aynıdır.
Sırayı 4'e ve sonra 7'ye taşımak için sıralamanın değiştirilmesinin, bunun yerine hamle 6'ya neden olduğunu unutmayın.
Sonuçlar aşağıda sıralanmıştır; bu grubunun Cayley tablosu . Örneğin, girişler çıktıyı üretmelidir .
Meydan okuma
Amacınız bu işlemi olabildiğince az bayt olarak uygulamaktır, ancak koda ek olarak, 1'den 8'e kadar olan hareketleri temsil eden etiketleri de seçersiniz. Etiketler 0 ile 255 arasında veya 8 adede 8 farklı sayı olmalıdır. kod noktalarının temsil ettiği bayt karakterler.
seçtiğiniz 8 etiketten ikisi verilecektir ve dihedral grubundaki bileşimlerine karşılık gelen etiketi .
Misal
Diyelim ki 1'den 8'e kadar hamleler için C, O, M, P, U, T, E, R karakterlerini seçtiniz. Ardından, kodunuz bu tabloyu uygulamalıdır.
E ve P girişleri verildiğinde, U çıktısını almalısınız. Girişleriniz her zaman C, O, M, P, U, T, E, R harflerinden ikisidir ve çıktılarınız her zaman bu harflerden biri olmalıdır.
Kopyalama için metin tablosu
1 2 3 4 5 6 7 8
2 3 4 1 8 7 5 6
3 4 1 2 6 5 8 7
4 1 2 3 7 8 6 5
5 7 6 8 1 3 2 4
6 8 5 7 3 1 4 2
7 6 8 5 4 2 1 3
8 5 7 6 2 4 3 1
Your choice of labels doesn't count against your code length.
zihin detaylandırıyor mu? Durduğunda, matrisi koduma sabitleyebilir ve puanımla sayılmadığını iddia edebilirim.