introduction
Définissons une fonction ternaire comme une fonction de l'ensemble de trois éléments S = {0,1,2}
à elle-même: elle s'associe à chaque élément d' S
un autre élément de S
. Un exemple de fonction ternaire f
est
f(0) = 0; f(1) = 2; f(2) = 0
Il existe exactement 27 fonctions ternaires différentes, et nous les représentons avec des entiers de 0 à 26: une fonction f
est codée comme f(0) + 3*f(1) + 9*f(2)
. L'exemple de fonction ci-dessus est codé comme le numéro 6.
Nous pouvons appliquer deux fonctions ternaires f
et g
dans l' ordre, et si f(g(k)) == g(f(k))
valable pour tous k
dans S
, les fonctions commuer . Votre tâche consiste à vérifier si tel est le cas.
Contribution
Vos entrées sont deux entiers compris entre 0 et 26. Ils représentent deux fonctions ternaires f
et g
. L'entrée doit être prise au 1
format décimal, binaire ou unaire (chaîne de s).
Sortie
Votre sortie est une valeur véridique si f
et faites lag
navette, et une valeur falsey si ce n'est pas le cas. Vous ne pouvez pas supposer que les entrées sont ordonnées.
Exemples
Considérez les entrées 5 et 16. Elles codent les fonctions ternaires
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
Nous avons f(g(1)) == f(2) == 0
et g(f(1)) == g(1) == 2
, donc f
et g
ne pas faire la navette et la sortie correcte est falsey.
En revanche, les entrées 3 et 10 codent les fonctions ternaires
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
et il peut être vérifié que f(g(k)) == g(f(k))
détient pour tous k
dans S
. Ensuite, la sortie correcte est véridique.
Voici le tableau 27 × 27 de toutes les entrées possibles, avec +
marquage d'une sortie véridique et d' -
une sortie falsey:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.