Einführung
Definieren wir eine ternäre Funktion als eine Funktion aus der Dreielementmenge S = {0,1,2}
zu sich selbst: Sie wird jedem Element eines S
anderen Elements von zugeordnet S
. Ein Beispiel für eine ternäre Funktion f
ist
f(0) = 0; f(1) = 2; f(2) = 0
Es gibt genau 27 verschiedene ternäre Funktionen, und wir stellen sie mit ganzen Zahlen von 0 bis 26 dar: Eine Funktion f
wird als codiert f(0) + 3*f(1) + 9*f(2)
. Die obige Beispielfunktion ist als Nummer 6 codiert.
Wir können zwei ternären Funktionen anwenden f
und g
in der Folge, und wenn f(g(k)) == g(f(k))
für alle hält k
in S
, dann die Funktionen pendeln . Ihre Aufgabe ist es zu überprüfen, ob dies der Fall ist.
Eingang
Ihre Eingaben sind zwei ganze Zahlen im Bereich von 0 bis 26. Sie repräsentieren zwei ternäre Funktionen f
und g
. Die Eingabe muss im Dezimal-, Binär- oder Unärformat (Zeichenfolge von 1
s) erfolgen.
Ausgabe
Ihre Ausgabe ist ein wahrer Wert, wenn f
und g
pendeln, und ein falscher Wert, wenn sie nicht. Sie können nicht davon ausgehen, dass die Eingänge geordnet sind.
Beispiele
Betrachten Sie die Eingänge 5 und 16. Sie codieren die ternären Funktionen
f(0) = 2; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 2; g(2) = 1
Wir haben f(g(1)) == f(2) == 0
und g(f(1)) == g(1) == 2
, so f
und g
nicht pendeln und die korrekte Ausgabe ist Falsey.
Andererseits codieren die Eingänge 3 und 10 die ternären Funktionen
f(0) = 0; f(1) = 1; f(2) = 0
g(0) = 1; g(1) = 0; g(2) = 1
und es kann überprüft werden , dass f(g(k)) == g(f(k))
für alle hält k
in S
. Dann ist die richtige Ausgabe wahr.
Hier ist die 27 × 27-Tabelle aller möglichen Eingaben, wobei +
eine wahrheitsgemäße Ausgabe und -
eine falsche Ausgabe markiert sind:
+ - - + - - + - - + - - + - - + - - + - - + - - + - -
- + - - - - - - - - - - + - - - - - - - - + - - - - -
- - + - - - - - - - - - - - - - - - - - - + - - + - -
+ - - + - - - - - - + - - + - - - - + - - + - - - - -
- - - - + - - - - - - - - + - - - - - - - + - - - - -
- - - - - + - - - - - - - + - - - - - - - + - - - - -
+ - - - - - + - - - - - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
- - - - - - - - + - - - - - - - - - + - - + - - - - -
+ - - - - - - - - + - - - - - - - - - - - + - - - - -
- - - + - - - - - - + - - - - - - - - - - + - - - - -
- - - - - - - + - - - + - - - - - - - - - + - - - - -
+ + - - - - - - - - - - + + - - - - - - - + + - - - -
- - - + + + - - - - - - + + + - - - - - - + + + - - -
- - - - - - - - - - - - - + + - - - - - - + - - - - -
+ - - - - - - - - - - - - - - + - - - - - + - - - - -
- - - - - - - - - - - - - - - - + - - - - + - + - - -
- - - - - - - - - - - - - - - - - + - - - + + - - - -
+ - - + - - - - + - - - - - - - - - + - - + - - - - +
- - - - - - - - - - - - - - - - - - - + - + - - - - +
- - - - - - - - - - - - - - - - - - - - + + - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - + + - - - + - - - + + - - - +
- - - - - - - - - - - - - + - - + - - - - + - + + - +
+ - + - - - - - - - - - - - - - - - - - - + - + + - +
- - - - - - - - - - - - - - - - - - - - - + - - - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + +
Regeln und Wertung
Sie können ein vollständiges Programm oder eine Funktion schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.