Die Diedergruppe ist die Symmetriegruppe des Quadrats, dh die Bewegungen, die ein Quadrat durch Rotationen und Reflexionen in sich selbst transformieren. Es besteht aus 8 Elementen: Rotationen um 0, 90, 180 und 270 Grad sowie Reflexionen über die horizontale, vertikale und zwei diagonale Achsen.
Die Bilder stammen alle von dieser schönen Seite von Larry Riddle.
Bei dieser Herausforderung geht es darum, diese Züge zu komponieren: Geben Sie bei zwei Zügen den Zug aus, der gleichbedeutend damit ist, sie nacheinander auszuführen. Zum Beispiel ist das Ausführen von Zug 7, gefolgt von Zug 4, dasselbe wie das Ausführen von Zug 5.
Beachten Sie, dass das Umschalten der Reihenfolge auf Zug 4 und dann auf Zug 7 zu Zug 6 führt.
Die Ergebnisse sind unten tabellarisch aufgeführt. Dies ist der Cayley-Tisch der Gruppe . So sollten beispielsweise die Eingänge Ausgang erzeugen .
Herausforderung
Ihr Ziel ist es, diese Operation in so wenigen Bytes wie möglich zu implementieren. Zusätzlich zum Code wählen Sie auch die Bezeichnungen , die die Schritte 1 bis 8 darstellen. Die Bezeichnungen müssen 8 verschiedene Zahlen von 0 bis 255 oder die 8 sein -byte Zeichen, die ihre Codepunkte darstellen.
Ihr Code erhält zwei der von Ihnen ausgewählten 8 Etiketten und muss das Etikett ausgeben, das ihrer Zusammensetzung in der Diedergruppe .
Beispiel
Angenommen, Sie haben die Zeichen C, O, M, P, U, T, E und R für die Züge 1 bis 8 ausgewählt. Dann sollte Ihr Code diese Tabelle implementieren.
Bei den Eingaben E und P sollten Sie U ausgeben. Ihre Eingaben bestehen immer aus zwei der Buchstaben C, O, M, P, U, T, E, R, und Ihre Ausgabe sollte immer aus einem dieser Buchstaben bestehen.
Texttabelle zum Kopieren
1 2 3 4 5 6 7 8
2 3 4 1 8 7 5 6
3 4 1 2 6 5 8 7
4 1 2 3 7 8 6 5
5 7 6 8 1 3 2 4
6 8 5 7 3 1 4 2
7 6 8 5 4 2 1 3
8 5 7 6 2 4 3 1
Your choice of labels doesn't count against your code length.
etwas dagegen auszuarbeiten? So wie es aussieht, kann ich die Matrix fest in meinen Code einkodieren und behaupten, dass sie nicht für meine Punktzahl zählt.