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.