Wprowadzenie
Zdefiniujmy funkcję trójskładnikową jako funkcję z zestawu trzech elementów S = {0,1,2}do siebie: wiąże się z każdym elementem Sinnego elementu S. Jednym z przykładów funkcji potrójnej fjest
f(0) = 0; f(1) = 2; f(2) = 0
Istnieją dokładnie 27 różnych funkcji trójskładnikowych i reprezentujemy je liczbami całkowitymi od 0 do 26: funkcja fjest zakodowana jako f(0) + 3*f(1) + 9*f(2). Powyższa przykładowa funkcja jest zakodowana jako liczba 6.
Możemy zastosować dwie funkcje trójskładnikowych fi gkolejno, a jeśli f(g(k)) == g(f(k))zachodzi dla wszystkich kIN S, a następnie funkcje dojeżdżać . Twoim zadaniem jest sprawdzenie, czy tak jest.
Wkład
Twoje dane wejściowe to dwie liczby całkowite z zakresu od 0 do 26. Reprezentują dwie funkcje trójskładnikowe fi g. Dane wejściowe muszą być pobierane w formacie dziesiętnym, binarnym lub jednoargumentowym (ciąg znaków 1s).
Wydajność
Jego wynik jest wartość truthy jeśli fi gdojazdy, a wartość falsey czy nie. Nie można zakładać, że dane wejściowe są uporządkowane.
Przykłady
Rozważmy wejścia 5 i 16. Kodują one funkcje trójskładnikowe
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
Mamy f(g(1)) == f(2) == 0i g(f(1)) == g(1) == 2tak fi gnie dojeżdża i prawidłowe wyjście jest falsey.
Z drugiej strony wejścia 3 i 10 kodują funkcje trójskładnikowe
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
i może zostać zweryfikowana, które f(g(k)) == g(f(k))odnosi się do wszystkich kin S. Zatem poprawne wyjście jest zgodne z prawdą.
Oto tabela 27 × 27 wszystkich możliwych danych wejściowych, z +zaznaczeniem prawdziwego wyniku i -wyniku falsey:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Zasady i punktacja
Możesz napisać pełny program lub funkcję. Wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.