The Dihedral kelompok mewakili simetri dari sebuah segitiga sama sisi, dengan menggunakan identitas (diwakili oleh id
), rotasi (diwakili oleh r1
dan r2
), dan refleksi (diwakili oleh s0
, s1
dan s2
).
Tugas Anda adalah menghitung komposisi dari elemen . Mereka diberikan oleh tabel Cayley di bawah ini:x , y ∈ D 3
x id r1 r2 s0 s1 s2
y +-----------------------
id | id r1 r2 s0 s1 s2
r1 | r1 r2 id s1 s2 s0
r2 | r2 id r1 s2 s0 s1
s0 | s0 s2 s1 id r2 r1
s1 | s1 s0 s2 r1 id r2
s2 | s2 s1 s0 r2 r1 id
Memasukkan
Setiap input masuk akal x
dan y
. Urutan tidak masalah.
Keluaran
y
disusun dengan x
, atau mencari nilai dalam tabel berdasarkan x
dan y
.
Uji Kasus
Ini diberikan dalam bentuk x y -> yx
.
id id -> id
s1 s2 -> r1
r1 r1 -> r2
r2 r1 -> id
s0 id -> s0
id s0 -> s0
Catatan tentang I / O
Anda dapat menggunakan pengganti wajar id, r1, r2, s0, s1, s2
, misalnya 1, 2, 3, 4, 5, 6
, 0, 1, 2, 3, 4, 5
atau bahkan [0,0], [0,1], [0,2], [1,0], [1,1], [1,2]
(di sini angka pertama mewakili rotasi / refleksi dan yang kedua adalah indeks).
o
dan daftarO
tiga elemen yang berisi permutasi bilangan bulat0, 1, 2
. Dalam pemahaman daftar, yang pertama diindeks oleh yang terakhir, menerapkan komposisi permutasi.Jelly , 1 byte
Tautan diadik yang mengambil y di kiri dan x di kanan.
Menggunakan representasi dari tiga bilangan asli yang ditransformasikan sebagai tindakan mereka menggambarkan:
Port jawaban Python Jonathan Frech
ị
adalah "indeks ke" atom Jelly, dan itu vektor; Perhatikan bahwa Jelly adalah 1-diindeks.Cobalah online! Atau lihat tabel menggunakan nama-pertanyaan .
Untuk mengambil x di kiri dan y di kanan, nilai-nilai ini dapat digunakan sebagai gantinya:
... lihat di sini .
sumber
JavaScript (ES6), 39 byte
Gunakan pemetaan berikut:
Mengambil input sebagai
(x)(y)
.Cobalah online!
JavaScript (ES6), 20 byte
Menggunakan format I / O Jonathan Frech :
Cobalah online!
sumber
Python 2 ,
272623 byteCobalah online! Sunting: Disimpan 3 byte berkat @NieDzejkob. Gunakan pemetaan berikut:
sumber
x*-1
... Saya punyax*(-1**y)
(-1)**y
. Oh well, itu masih 1 byte lebih pendek ...(-1)
dengan 5 untuk -3 byte.APL (Dyalog Classic) , 3 byte
Cobalah online!
+.×
adalah perkalian matrikskami mewakili grup sebagai
sumber
K (ngn / k) , 1 byte
Cobalah online!
x@y
adalah pengindeksan daftar, yang sama dengan komposisi permutasi; kami mewakili grup sebagaisumber
Japt , 2 byte
Menggunakan format I / O Jonathan .
Cobalah online
sumber
JavaScript (Node.js) ,
2419 byteCobalah online! Sunting: Disimpan 2 byte dengan beralih ke
**
dan 3 byte berkat @NieDzejkob. Gunakan pemetaan berikut:Versi 24 byte yang lama juga berfungsi di versi JavaScript yang lama:
sumber
Racket , 42 byte
Cobalah online!
Port membosankan jawaban Neil's Python. Menggunakan format I / O yang sama, jadi:
sumber
05AB1E , 1 byte
Port of @JonathanAllan 's Jelly answer , tetapi dengan indeks berbasis 0, jadi representasinya adalah:
Cobalah online atau verifikasi semua kombinasi yang mungkin atau verifikasi semua yang dipetakan kembali ke id .
Penjelasan:
sumber
Bahasa Wolfram (Mathematica) , 16 byte
Cobalah online!
Port lain yang membosankan dari jawaban Neil, kali ini di Mathematica. Ini adalah fungsi anonim yang mengambil argumen dalam urutan
[y, x]
.Inilah representasi input:
sumber