Wir können einen Zauberwürfel wie folgt als Netz darstellen (wenn gelöst):
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
Jeder Buchstabe stellt die entsprechende Farbe dar ( W
ist weiß, G
grün usw.)
Es hat sich gezeigt, dass es genau (~ Billionen) verschiedene Permutationen gibt, in denen sich ein Zauberwürfel befinden kann.
Ihre Aufgabe ist es, eine ganze Zahl zwischen und und die entsprechende Permutation wie oben gezeigt auszugeben. Sie können wählen, wie die Permutationen sortiert werden sollen, aber der von Ihnen verwendete Algorithmus muss angezeigt werden, um eine eindeutige und korrekte Permutation für jede mögliche Eingabe zu generieren.
Ungültige Permutationsregeln
Entnommen von dieser Seite
Zunächst muss die Mitte jeder 3x3-Fläche gleich bleiben, da das mittlere Quadrat auf einem Zauberwürfel nicht gedreht werden kann. Der gesamte Würfel kann gedreht werden, wobei sich die Position einer Fläche ändert. Dies wirkt sich jedoch nicht auf das Würfelnetz aus.
Wenn wir sagen, dass jede Permutation eine Parität hat, basierend auf der Parität der Anzahl von Swaps, um diese Permutation zu erreichen, können wir sagen
Jedes Eckstück hat drei mögliche Ausrichtungen. Es kann richtig ausgerichtet sein (0), im Uhrzeigersinn (1) oder gegen den Uhrzeigersinn (2). Die Summe der Eckorientierungen bleibt immer durch 3 teilbar
Bei jeder legalen Drehung auf dem Rubik's Cube wird immer eine gerade Anzahl von Kanten umgedreht, sodass nicht nur ein Teil falsch ausgerichtet sein kann.
Unter Berücksichtigung der Permutation aller Ecken und Kanten muss die Gesamtparität gerade sein, was bedeutet, dass jeder legale Zug immer eine gerade Anzahl von Swaps ausführt (ohne Berücksichtigung der Ausrichtung).
Die folgenden drei Netze sind beispielsweise ungültige Ausgaben:
WWW
WWW
WWW
GGGWWWBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
(Too many whites/not enough reds)
WRW
WRW
WRW
GGGRWRBBBOOO
GGGWRRBBBOOO
YYGRWROOOBBB
YYY
GGY
YYY
(There are two red/green center squares and no white/yellow center squares.
In all valid permutations, the center squares are all different colours)
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBOYOO
YYY
YYY
YYB
(The yellow/orange/blue corner is rotated into an impossible permutation)
Regeln
- Sie müssen nachweisen, wie Sie möchten, dass der Algorithmus gültig ist. Sie müssen nicht jede einzelne Permutation aufzählen, solange Sie die Gültigkeit Ihres Algorithmus nachweisen.
- Sie müssen Ihrer Antwort eine Art Gültigkeitsnachweis beifügen. Dieser Beweis kann die Gültigkeit in jeder akzeptierten Beweismethode beweisen, mit Ausnahme der Aufzählung aller Möglichkeiten.
- Sie können auf Wunsch auch eine andere Eingabemethode verwenden, sofern:
- Die Eingabe ist begrenzt
- Jeder Eingang entspricht einem eindeutigen Ausgang
- Sie erläutern deutlich das Eingabeformat und wie es den einzelnen Ausgaben entspricht
- Sie können die Zeichen verwenden 6 verschiedene ASCII - Zeichen verwendet , ändern, zwischen 33 (
!
) und 126 (~
), stattWGRBOY
- Sie können beliebig ausgeben, sofern es sich um eine übersichtliche Darstellung eines Würfels handelt, in der alle 6 Flächen angezeigt werden können, einschließlich eines gültigen Würfelnetzes, einer einzelnen Zeichenfolge oder eines 3D-Renderings. Wenn Sie sich über ein bestimmtes Format nicht sicher sind, zögern Sie nicht, in den Kommentaren nachzufragen.
Dies ist ein Code-Golf, so dass der kürzeste Code in Bytes in jeder Sprache gewinnt.
Beispiel für gültige Ausgaben
YYY
YYY
YYY
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
WWW
WWW
WWW
(The `W` and `Y` faces have been swapped)
ZZZ
+++
+}}
+[[}77ZZ7bbb
bb[}[[7}}+Z7
bb[}++[}}+Z7
7bb
[7Z
[7Z
(To start with, the colours have been mapped W -> +, G -> b, R -> [, B -> }, O -> Z and Y -> 7.
Then, the moves L, R, U and F' have been applied, in that order.
Notice that each centre square is different, and corresponds to the same colour as in the mapping)