In diesem Artikel wird die Bibliothek kociemba vorgestellt, die die Lösung des Rubik-Würfels berechnet und deren einfache Verwendung erläutert.
Es gibt verschiedene Arten von Python, von Bibliotheken zum Zeichnen von 3D-Diagrammen bis zu Mahjong-Bibliotheken. In dieser Zeit wird eine Bibliothek vorgestellt, die sofort die Lösungsmethode zum Ausrichten der gesamten Oberfläche anhand des aktuellen Status des Rubik-Würfels berechnet.
Ich habe diesen Artikel mit der Hoffnung geschrieben, dass jeder, der in den Sommerferien nach einem Rubik Cube-Löser in College-Klassen oder kostenlosem Lernen sucht, bald Kociemba findet.
Dank dieser Bibliothek konnte ich einen "Roboter erstellen, der Rubik-Würfel vollautomatisch löst". Video: Automatic Rubik's Cube Solver
Ursprünglich war es der Name des Gelehrten, der den Kociemba-Algorithmus entwickelt hat, der den Rubik-Würfel löst. Sein richtiger Name ist Herbert Kociemba.
Ich suchte nach einer Bibliothek, um den Rubik Cube für die Produktionsaufgaben meiner Abteilung zu lösen. Eigentlich gibt es viele andere Bibliotheken zum Lösen von Rubik Cube, aber viele von ihnen sind extrem langsam oder ich habe keine Ahnung, wie ich sie verwenden soll, daher fiel es mir schwer, nicht zu wissen, welche ich zu diesem Zeitpunkt verwenden sollte. In der Zwischenzeit habe ich mich für diese Bibliothek entschieden, da sie am einfachsten zu verwenden und am schnellsten zu berechnen war.
Meine Umgebung war Ubuntu 16.04 LTS. Sie können es mit pip setzen. Es scheint, dass es mit Python2.7, Python3.3 + bestätigt wurde
pip install kociemba
Benutzer von Unix-basierten Betriebssystemen wie Mac und Ubuntu benötigen außerdem die folgenden Befehle.
sudo apt-get install libffi-dev
Verwenden Sie es wie folgt. Die Bedeutung der Symbole wird später erläutert.
python
>>> import kociemba
>>> kociemba.solve('DRLUUBFBRBLURRLRUBLRDDFDLFUFUFFDBRDUBRUFLLFDDBFLUBLRBD')
u"D2 R' D' F2 B D R2 D2 R' F2 D' F2 U' B2 L2 U2 D R2 U"
Es ist allgemein bekannt für diejenigen, die einen Rubikwürfel herstellen können, aber die Achse des Rubikwürfels ändert sich nicht, egal wie viele Schrauben gedreht werden. Im Bild unten sehen Sie, dass sich das Quadrat in der Mitte jeder Oberfläche nicht bewegt, egal wie Sie die Oberfläche drehen.
Anhand dieser Tatsache können wir sehen, dass selbst der komplizierte "Zustand des Rubinwürfels" durch ein Symbol dargestellt werden kann, das eindeutig bestimmt wird.
Da festgestellt wurde, dass sich die zentrale Masse jeder Oberfläche nicht bewegt, ist es jetzt möglich, eine Oberfläche wie "Drehen Sie die Oberfläche, deren Zentrum rot ist" anzugeben, unabhängig davon, wie unzusammenhängend sie ist.
In Kociemba wird der Drehwinkel wie folgt ausgedrückt. R ist die rote Seite,
R:90 Grad im Uhrzeigersinn
R':90 Grad gegen den Uhrzeigersinn
R2:180 Grad Drehung
kociemba färbt nicht jede Seite (F (vorne), B (hinten), R (rechts), L (links), U (oben), B (unten)), so dass es in jede Richtung gelöst werden kann. Es wird vertreten durch. Entscheiden Sie zunächst die Entsprechung zwischen diesen Symbolen und der Farbe Ihres Rubik-Würfels wie folgt. Natürlich wird die Entsprechung durch die Farbe der Mitte der Oberfläche nach vorne bestimmt.
--F (vorne) → weiß
Als nächstes finden Sie anhand der folgenden Entwicklungszeichnung heraus, welche Farbe sich in welcher Position befindet (dies ist äußerst schwierig).
Wenn sich beispielsweise an der oberen Position "U1" Gelb befindet, ist "U1 = B". Schließlich ist U1, U2, U3, U4, U5, U6, U7, U8, U9, R1, R2, R3, R4, R5, R6, R7, R8, R9, F1, F2, F3, F4, F5, F6, F7, F8, F9, D1, D2, D3, D4, D5, D6, D7, D8, D9, L1, L2, L3, L4, L5, L6, L7, L8, L9, B1, B2, B3, Erstellen Sie die Zeichenfolge "str" in der Reihenfolge B4, B5, B6, B7, B8, B9. "und führen Sie" kociemba.solve (str) "aus, um die Lösung zu erhalten.
Recommended Posts