Kelompok dihedral adalah kelompok simetri dari alun-alun, yang bergerak yang mengubah persegi untuk dirinya sendiri melalui rotasi dan refleksi. Ini terdiri dari 8 elemen: rotasi dengan 0, 90, 180, dan 270 derajat, dan refleksi melintasi sumbu horizontal, vertikal, dan dua diagonal.
Gambar-gambar tersebut semuanya berasal dari halaman indah oleh Larry Riddle.
Tantangan ini adalah tentang menyusun gerakan ini: diberi dua gerakan, mengeluarkan gerakan yang setara dengan melakukannya satu per satu. Misalnya, melakukan langkah 7 diikuti dengan langkah 4 sama dengan melakukan langkah 5.
Perhatikan bahwa beralih urutan untuk bergerak 4 lalu bergerak 7 menghasilkan langkah 6 sebagai gantinya.
Hasilnya ditabulasikan di bawah ini; ini adalah tabel Cayley dari grup . Jadi misalnya, input harus menghasilkan output .
Tantangan
Tujuan Anda adalah untuk mengimplementasikan operasi ini sesedikit mungkin byte, tetapi selain kode, Anda juga memilih label yang mewakili gerakan 1 hingga 8. Label harus terdiri dari 8 angka berbeda dari 0 hingga 255 , atau 8 karakter -byte mewakili titik kode mereka.
Kode Anda akan diberikan dua label dari 8 yang Anda pilih, dan harus menampilkan label yang sesuai dengan komposisi mereka di grup dihedral .
Contoh
Katakanlah Anda telah memilih karakter C, O, M, P, U, T, E, R untuk masing-masing bergerak 1 hingga 8. Kemudian, kode Anda harus mengimplementasikan tabel ini.
Diberikan input E dan P, Anda harus menampilkan U. Input Anda akan selalu dua huruf C, O, M, P, U, T, E, R, dan output Anda harus selalu salah satu dari huruf-huruf ini.
Tabel teks untuk disalin
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.keberatan menguraikan? Seperti berdiri, saya dapat mengubah kode matriks ke dalam kode saya dan mengklaim itu tidak dihitung terhadap skor saya.