Bảng Cayley của Dih thờ Nhóm


8

Các nhị diện nhóm D3 đại diện cho đối xứng của một tam giác đều, bằng cách sử dụng danh tính (thể hiện bằng id), quay (đại diện bởi r1r2), và phản xạ (đại diện bởi s0, s1s2).

Nhiệm vụ của bạn là tính toán thành phần của các phần tử x , y D 3 . Chúng được đưa ra bởi bảng Cayley dưới đây:yxx,yD3

  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

Đầu vào

Bất kỳ đầu vào hợp lý của xy. Đặt hàng không quan trọng.

Đầu ra

yđược soạn thảo với xhoặc tìm kiếm các giá trị trong bảng dựa trên xy.

Các trường hợp thử nghiệm

Chúng được đưa ra trong mẫu x y -> yx.

id id -> id
s1 s2 -> r1
r1 r1 -> r2
r2 r1 -> id
s0 id -> s0
id s0 -> s0

Ghi chú về I / O

Bạn có thể sử dụng bất kỳ sự thay thế hợp lý id, r1, r2, s0, s1, s2, ví dụ 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5hoặc thậm chí[0,0], [0,1], [0,2], [1,0], [1,1], [1,2] (ở đây số đầu tiên đại diện cho xoay / phản xạ và thứ hai là chỉ số).

Câu trả lời:



3

Thạch , 1 byte

Một liên kết dyadic lấy y ở bên trái và x ở bên phải.

Sử dụng các đại diện của ba số tự nhiên được chuyển đổi như hành động của họ mô tả:

   name:  id          r1          r2          s0          s1          s2
  value:  [1,2,3]     [2,3,1]     [3,1,2]     [2,1,3]     [1,3,2]     [3,2,1]
(action:  identity    rot-Left    rot-Right   swap-Left   swap-Right  swap-Outer)

Một câu trả lời Python của Jonathan Frech

là nguyên tử "chỉ số" của Jelly, và nó vectơ; lưu ý rằng Jelly là 1 chỉ mục.

Hãy thử trực tuyến! Hoặc xem bảng bằng tên câu hỏi .


Để lấy x ở bên trái và y ở bên phải, các giá trị này có thể được sử dụng thay thế:

id       r1       r2       s0       s1       s2
[1,2,3]  [3,1,2]  [2,3,1]  [1,3,2]  [3,2,1]  [2,1,3]

... Xem tại đây .



3

Python 2 , 27 26 23 byte

lambda x,y:(y+x*5**y)%6

Hãy thử trực tuyến! Chỉnh sửa: Đã lưu 3 byte nhờ @NieDzejkob. Sử dụng ánh xạ sau:

 id | r1 | r2 | s0 | s1 | s2 
----+----+----+----+----+----
 0  | 2  | 4  | 1  | 3  | 5  

@JonathanFrech ... Tôi không có x*-1... Tôi cóx*(-1**y)
Neil

@JonathanFrech Ah, tôi đã đánh máy mã kiểm tra của mình, tôi nghĩ rằng tôi đã nhận được (-1)**y. Ôi chà, nó vẫn ngắn hơn 1 byte ...
Neil

Hừm ... Và tôi nghĩ rằng tôi đã chơi gôn một byte ...
Jonathan Frech

Giống như trong thử thách D4, bạn có thể thay thế (-1)bằng 5 cho -3 byte.
NieDzejkob


2

K (ngn / k) , 1 byte

@

Hãy thử trực tuyến!

x@ylà lập chỉ mục danh sách, giống như thành phần của hoán vị; chúng tôi đại diện cho nhóm như

id:0 1 2; r1:1 2 0; r2:2 0 1; s0:2 1 0; s1:1 0 2; s2:0 2 1


1

JavaScript (Node.js) , 24 19 byte

(x,y)=>(y+x*5**y)%6

Hãy thử trực tuyến! Chỉnh sửa: Đã lưu 2 byte bằng cách chuyển sang **và 3 byte nhờ @NieDzejkob. Sử dụng ánh xạ sau:

 id | r1 | r2 | s0 | s1 | s2 
----+----+----+----+----+----
 0  | 2  | 4  | 1  | 3  | 5  

Phiên bản 24 byte cũ cũng hoạt động trong các phiên bản JavaScript cũ:

(x,y)=>(y%2?y+6-x:y+x)%6

1

Vợt , 42 byte

(lambda(x y)(modulo(+ y(* x(expt 5 y)))6))

Hãy thử trực tuyến!

Một cổng nhàm chán của câu trả lời Python của Neil. Sử dụng cùng định dạng I / O, vì vậy:

 id | r1 | r2 | s0 | s1 | s2 
----+----+----+----+----+----
 0  | 2  | 4  | 1  | 3  | 5  

0

05AB1E , 1 byte

è

Cảng @JonathanAllan 's Jelly câu trả lời , nhưng với 0 dựa trên các chỉ số, vì vậy các cơ quan đại diện bao gồm:

id       r1       r2       s0       s1       s2       # Original values
[0,1,2]  [1,2,0]  [2,0,1]  [1,0,2]  [0,2,1]  [2,1,0]  # Values instead

Dùng thử trực tuyến hoặc xác minh tất cả các kết hợp có thể hoặc xác minh tất cả ánh xạ trở lại id .

Giải trình:

è  # Index the second (implicit) input-list vectorized into the first (implicit) input-list
   # And output the result implicitly

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.