El grupo Dihedral representa las simetrías de un triángulo equilátero, utilizando la identidad (representada por id), rotaciones (representados por r1y r2), y las reflexiones (representados por s0, s1y s2).
Su tarea es calcular la composición de los elementos x , y ∈ D 3 . Los da la siguiente tabla de Cayley:
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
Entrada
Cualquier aportación razonable de xy y. El orden no importa.
Salida
ycompuesto con x, o buscando valores en la tabla basados en xyy .
Casos de prueba
Estos se dan en el formulario x y -> yx.
id id -> id
s1 s2 -> r1
r1 r1 -> r2
r2 r1 -> id
s0 id -> s0
id s0 -> s0
Notas sobre E / S
Puede usar cualquier reemplazo razonable de id, r1, r2, s0, s1, s2, por ejemplo 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5o incluso [0,0], [0,1], [0,2], [1,0], [1,1], [1,2](aquí el primer número representa la rotación / reflexión y el segundo es el índice).

oyOson listas de tres elementos que contienen una permutación de los enteros0, 1, 2. En la lista de comprensión, el primero es indexado por el segundo, implementando la composición de permutación.Gelatina , 1 byte
Un enlace diádico que toma y a la izquierda yx a la derecha.
Utiliza las representaciones del puño tres números naturales transformados como describen sus acciones:
Un puerto de la respuesta de Python de Jonathan Frech
ịes el átomo de "índice en" de Jelly, y se vectoriza; Tenga en cuenta que Jelly está indexada en 1.Pruébalo en línea! O vea una tabla usando los nombres de las preguntas .
Para tomar x a la izquierda e y a la derecha, estos valores pueden usarse en su lugar:
... mira aquí .
fuente
JavaScript (ES6), 39 bytes
Utiliza el siguiente mapeo:
Toma entrada como
(x)(y).Pruébalo en línea!
JavaScript (ES6), 20 bytes
Usando el formato de E / S de Jonathan Frech :
Pruébalo en línea!
fuente
Python 2 ,
272623 bytesPruébalo en línea! Editar: Guardado 3 bytes gracias a @NieDzejkob. Utiliza el siguiente mapeo:
fuente
x*-1... tengox*(-1**y)(-1)**y. Oh, bueno, eso todavía es 1 byte más corto ...(-1)con 5 por -3 bytes.APL (Dyalog Classic) , 3 bytes
Pruébalo en línea!
+.×es la multiplicación de matricesrepresentamos al grupo como
fuente
K (ngn / k) , 1 byte
Pruébalo en línea!
x@yes la indexación de listas, que es lo mismo que la composición de permutaciones; representamos al grupo comofuente
Japt , 2 bytes
Utiliza el formato de E / S de Jonathan .
Pruébalo en línea
fuente
JavaScript (Node.js) ,
2419 bytesPruébalo en línea! Editar: se guardaron 2 bytes cambiando
**y 3 bytes gracias a @NieDzejkob. Utiliza el siguiente mapeo:La versión anterior de 24 bytes también funciona en versiones antiguas de JavaScript:
fuente
Raqueta , 42 bytes
Pruébalo en línea!
Un puerto aburrido de la respuesta Python de Neil. Utiliza el mismo formato de E / S, por lo tanto:
fuente
05AB1E , 1 byte
Puerto de la respuesta Jelly de @JonathanAllan , pero con índices basados en 0, por lo que las representaciones son:
Pruébelo en línea o verificar todas las combinaciones posibles o verificar toda la vuelta asignada a los identificadores .
Explicación:
fuente
Wolfram Language (Mathematica) , 16 bytes
Pruébalo en línea!
Otro puerto aburrido de la respuesta de Neil, esta vez en Mathematica. Es una función anónima que toma argumentos en el orden
[y, x].Aquí está la representación de entrada:
fuente