Introdução
Vamos definir uma função ternária como uma função do conjunto de três elementos S = {0,1,2}
: ela se associa a cada elemento de S
outro elemento de S
. Um exemplo de função ternária f
é
f(0) = 0; f(1) = 2; f(2) = 0
Existem exatamente 27 funções ternárias diferentes, e as representamos com números inteiros de 0 a 26: uma função f
é codificada como f(0) + 3*f(1) + 9*f(2)
. A função de exemplo acima é codificada como o número 6.
Podemos aplicar duas funções ternários f
e g
em seqüência, e se f(g(k)) == g(f(k))
detém para todos k
em S
, em seguida, as funções comutar . Sua tarefa é verificar se esse é o caso.
Entrada
Suas entradas são dois números inteiros no intervalo inclusivo de 0 a 26. Eles representam duas funções ternárias f
e g
. A entrada deve ser feita no formato decimal, binário ou unário (sequência de 1
s).
Saída
Sua saída é um valor verdadeiro se f
e g
comutar, e um valor falsey se não o fizerem. Você não pode assumir que as entradas estão ordenadas.
Exemplos
Considere as entradas 5 e 16. Eles codificam as funções ternárias
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
Nós temos f(g(1)) == f(2) == 0
e g(f(1)) == g(1) == 2
, por isso, f
e g
não comutar e a saída correta é Falsey.
Por outro lado, as entradas 3 e 10 codificam as funções ternárias
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
e pode-se verificar que f(g(k)) == g(f(k))
vale para todo k
em S
. Então a saída correta é verdadeira.
Aqui está a tabela 27 × 27 de todas as entradas possíveis, com a +
marcação de uma saída -
verdadeira e uma saída falsey:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Regras e pontuação
Você pode escrever um programa completo ou uma função. A contagem de bytes mais baixa vence e as brechas padrão não são permitidas.