El grupo diédrico es el grupo de simetría del cuadrado, es decir, los movimientos que transforman un cuadrado a sí mismo a través de rotaciones y reflexiones. Consta de 8 elementos: rotaciones de 0, 90, 180 y 270 grados, y reflexiones a través de los ejes horizontal, vertical y dos diagonales.
Las imágenes son todas de esta hermosa página de Larry Riddle.
Este desafío se trata de componer estos movimientos: dados dos movimientos, genera el movimiento que es equivalente a hacerlos uno tras otro. Por ejemplo, hacer el movimiento 7 seguido del movimiento 4 es lo mismo que hacer el movimiento 5.
Tenga en cuenta que cambiar el orden para mover 4 y luego mover 7 produce el movimiento 6 en su lugar.
Los resultados se tabulan a continuación; Esta es la tabla de Cayley del grupo . Entonces, por ejemplo, las entradas deberían producir la salida .
Desafío
Su objetivo es implementar esta operación en la menor cantidad de bytes posible, pero además del código, también elige las etiquetas que representan los movimientos del 1 al 8. Las etiquetas deben ser 8 números distintos del 0 al 255 , o el 8 -byte caracteres que representan sus puntos de código.
Su código recibirá dos de las etiquetas de las 8 que ha elegido, y debe mostrar la etiqueta que corresponde a su composición en el grupo diédrico .
Ejemplo
Supongamos que ha elegido los caracteres C, O, M, P, U, T, E, R para los movimientos 1 a 8 respectivamente. Entonces, su código debe implementar esta tabla.
Dadas las entradas E y P, debe generar U. Sus entradas siempre serán dos de las letras C, O, M, P, U, T, E, R, y su salida siempre será una de estas letras.
Tabla de texto para copiar
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.
mente elaborando? Tal como está, puedo codificar la matriz en mi código y afirmar que no cuenta para mi puntaje.