O grupo diedro representa as simetrias de um triângulo equilátero, utilizando a identidade (representado por id
), rotações (representados por r1
e r2
), e as reflexões (representados por s0
, s1
, e s2
).
Sua tarefa é calcular a composição dos elementos . Eles são fornecidos pela tabela de Cayley abaixo: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
Entrada
Qualquer entrada razoável de x
e y
. Ordem não importa.
Resultado
y
composto com x
ou procurando valores na tabela com base em x
e y
.
Casos de teste
Estes são dados no formulário 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
Você pode usar qualquer substituição razoável de id, r1, r2, s0, s1, s2
, por exemplo 1, 2, 3, 4, 5, 6
, 0, 1, 2, 3, 4, 5
ou mesmo [0,0], [0,1], [0,2], [1,0], [1,1], [1,2]
(aqui o primeiro número representa rotação / reflexão e o segundo é o índice).
o
eO
são listas de três elementos contendo uma permutação dos números inteiros0, 1, 2
. Na compreensão da lista, o primeiro é indexado pelo segundo, implementando a composição da permutação.Geléia , 1 byte
Um link diádico com y à esquerda ex à direita.
Utiliza as representações do primeiro punho em três números naturais transformados conforme suas ações descrevem:
Um porto da resposta Python de Jonathan Frech
ị
é o "índice de" geléia de átomo, e vetoriza; observe que a geléia é indexada em 1.Experimente online! Ou veja uma tabela usando os nomes das perguntas .
Para colocar x à esquerda e y à direita, esses valores podem ser usados:
... veja aqui .
fonte
JavaScript (ES6), 39 bytes
Usa o seguinte mapeamento:
Toma entrada como
(x)(y)
.Experimente online!
JavaScript (ES6), 20 bytes
Usando o formato de E / S de Jonathan Frech :
Experimente online!
fonte
Python 2 ,
272623 bytesExperimente online! Editar: salvou 3 bytes graças a @NieDzejkob. Usa o seguinte mapeamento:
fonte
x*-1
... eu tenhox*(-1**y)
(-1)**y
. Oh bem, isso é ainda mais curto 1 byte ...(-1)
por 5 por -3 bytes.APL (Dyalog Classic) , 3 bytes
Experimente online!
+.×
é multiplicação de matrizesnós representamos o grupo como
fonte
K (ngn / k) , 1 byte
Experimente online!
x@y
é a indexação de lista, que é igual à composição das permutações; nós representamos o grupo comofonte
Japonês , 2 bytes
Usos o formato de E / S de Jonathan .
Experimente online
fonte
JavaScript (Node.js) ,
2419 bytesExperimente online! Editar: salvou 2 bytes mudando para
**
e 3 bytes graças a @NieDzejkob. Usa o seguinte mapeamento:A versão antiga de 24 bytes também funciona em versões antigas do JavaScript:
fonte
Raquete , 42 bytes
Experimente online!
Uma porta chata da resposta Python de Neil. Usa o mesmo formato de E / S, portanto:
fonte
05AB1E , 1 byte
Resposta da porta do @JonathanAllan Jelly , mas com índices baseados em 0, então as representações são:
Experimente online ou verifique todas as combinações possíveis ou verifique todos os mapeados de volta para os IDs .
Explicação:
fonte
Wolfram Language (Mathematica) , 16 bytes
Experimente online!
Outro ponto chato da resposta de Neil, desta vez no Mathematica. É uma função anônima que recebe argumentos na ordem
[y, x]
.Aqui está a representação de entrada:
fonte