Вступ
Давайте визначимо потрійну функцію як функцію від триелементного набору S = {0,1,2}
для себе: вона асоціюється з кожним елементом S
іншого елемента S
. Одним із прикладів потрійної функції f
є
f(0) = 0; f(1) = 2; f(2) = 0
Існує рівно 27 різних потрійних функцій, і ми представляємо їх цілими числами від 0 до 26: функція f
кодується як f(0) + 3*f(1) + 9*f(2)
. Прикладна функція кодується як число 6.
Ми можемо застосувати дві потрійні функції f
і g
в послідовності, а якщо f(g(k)) == g(f(k))
виконується для всіх k
в S
, то функції комутуються . Ваше завдання - перевірити, чи це так.
Вхідні дані
Ваші входи - це два цілих числа в інклюзивному діапазоні від 0 до 26. Вони представляють дві потрійні функції f
і g
. Введення має бути зроблено у десятковому, двійковому чи одинарному (рядок 1
s) форматі.
Вихідні дані
Вихід - це величина, що відповідає нормі, якщо f
і g
рухається, і значення фальси, якщо вони не мають. Ви можете не припускати, що входи впорядковані.
Приклади
Розглянемо входи 5 і 16. Вони кодують потрійні функції
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
У нас є f(g(1)) == f(2) == 0
і g(f(1)) == g(1) == 2
, так f
і g
НЕ комутують і правильний вихід falsey.
З іншого боку, входи 3 і 10 кодують потрійні функції
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
і це може бути перевірено, що f(g(k)) == g(f(k))
справедливо для всіх k
в S
. Тоді правильний вихід - це правда.
Ось таблиця 27 × 27 всіх можливих входів, із +
позначенням трикутного виходу та -
фальсийного виходу:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Правила та оцінка
Ви можете написати повну програму або функцію. Виграє найменший кількість байтів, а стандартні лазівки заборонені.