2x2x2

https://xpil.eu/fa5sC

2x2x2Układanie kostki Rubika jest proste, jak się zna system. Pierwszy raz ułożyłem kostkę 3x3x3 w wieku może ośmiu lat (a może siedmiu? nie pamiętam dokładnie). Jakiś znajomy rodziny dał mi wymiętoloną kartkę z zakodowanymi sekwencjami ruchów do ułożenia trzeciej warstwy i powiedział, żebym spróbował ułożyć dwie pierwsze warstwy samemu, a trzecią za pomocą tych sekwencji.

Udało mi się, nawet nauczyłem się tych układów na pamięć i szpanowałem potem przed kolegami układając kostkę w zaledwie pięć minut.

Potem dowiedziałem się, że to był najbardziej trywialny a zarazem czasochłonny sposób na układanie kostki 3x3x3, i że istnieją o wiele bardziej wydajne algorytmy układania - jednak wówczas układanie kostki nie pasjonowało mnie już zupełnie, więc sobie temat odpuściłem.

Kilkanaście lat potem przeczytałem gdzieś w wiadomościach, że kostkę 3x3x3 da się ułożyć w dwudziestu ruchach, niezależnie od wymieszania. Udowodnili to jajogłowi z Google, w bardzo prymitywny sposób: zasymulowali wszystkie możliwe wymieszania (a jest ich ponad 43 tryliardy, dokładnie 43 252 003 274 489 856 000) a następnie zasymulowali optymalne układanie kostki z każdego z tych 43 tryliardów wymieszań. Wyszło, że większość wymieszań daje się ułożyć w 15-19 ruchach, niektóre wymieszania wymagają 20 ruchów. Oczywiście takie podejście jest możliwe wyłącznie wtedy, gdy dysponuje się kosmiczną nieomal mocą obliczeniową. Gdybym miał taką symulację przeprowadzić na swoim domowym laptopie, prawdopodobnie moje prawnuki nie doczekałyby się wyników.

Wracając jednak do clue dzisiejszego wpisu, otóż w ostatnie święta moje dziecko znalazło pod choinką kostkę Rubika dla najmłodszych, czyli wersję 2x2x2. Wymieszała ją czym prędzej i spróbowała ułożyć, jednak bez większego powodzenia. Pomimo tego, że liczba ścianek jest dużo mniejsza niż w 3x3x3 (tam: 54, tutaj: 24), stopień komplikacji w dalszym ciągu jest całkiem spory.

Wczoraj, z czystej ciekawości, zapytałem Wielkiego Goo jak ułożyć jaką kostkę - okazało się, że wcale nie tak trudno jak by się mogło początkowo wydawać. Oczywiście jak się zna "system".

Pierwsza podstawowa różnica między kostką 3x3x3 a 2x2x2 jest taka, że ta mniejsza nie ma krawędzi (krawędziami nazywa się te części, które mają tylko dwie naklejki, a więc te pomiędzy narożnikami). No i ma tylko dwie warstwy zamiast trzech. A więc jej ułożenie wymaga mniejszej ilości sekwencji do zapamiętania.

Ułożenie jednej warstwy jest trywialne i nie wymaga żadnych algorytmów.

Do ułożenia drugiej warstwy natomiast potrzeba dwóch etapów: w pierwszym etapie układamy pełny kolor na całej powierzchni drugiej warstwy (nie martwiąc się o kolory na jej obwodzie), i do tego celu wystarczy prościutka kombinacja R'D'RD, powtórzona raz, dwa lub trzy razy. Następnie obracamy górną warstwę o tyle oczek ile trzeba i powtarzamy algorytm dla kolejnego narożnika. W ten sposób po maksymalnie dwunastu powtórzeniach sekwencji mamy górną warstwę zorientowaną (czyli wszystkie kwadraciki na górze są tego samego koloru). Ostatnim etapem jest permutacja tej warstwy tak, żeby dopasować kolory na bokach kostek. W tym celu trzeba wykonać (raz, bądź też dwa razy) kombinację R' F R' B B R F' R' B B R R U - i gotowe, kostka ułożona.

Oczywiście jest to algorytm najbardziej podstawowy, przy jego zastosowaniu ułożymy kostkę po (średnio) 120 ruchach. Bardziej zaawansowane algorytmy pozwalają ułożyć kostkę w 25 albo nawet w 11 ruchach (jednak do tego ostatniego trzeba opanować na pamięć aż 125 różnych sekwencji).

Na zakończenie dodam jako ciekawostkę, że mistrz Polski w speedcubingu (tak się po naszemu nazywa układanie kostki na czas) ułożył kostkę 2x2x2 w czasie jednej i trzech setnych sekundy. Jest to jednak o wiele za wolno, żeby trafić na podium światowe: pierwsze trzy miejsca są tam obstawione przez Włochów, którzy układają kostkę 2x2x2 w okolicach 0.7 - 0.8 sekundy.

Dziwny świat.

https://xpil.eu/fa5sC

11 komentarzy

  1. 0.8 sekundy? Jak to możliwe? Przecież w tym czasie nie można dobrze chwycić tej kostki, a co dopiero ułożyć!

    1. Konkretnie to 0.69 sekundy. Przypuszczam, że kostka jest już wtedy “dobrze chwycona” jak również dokładnie przeanalizowana. Standardowe algorytmy pozwalają na ułożenie kostki w 11 ruchach, taki mistrz może mieć plan na 8-9 ruchów. To daje niecałe 0.1 sekundy na ruch. Czas reakcji układu nerwowego to około 0.2 sekundy, więc mistrzowie muszą to mieć solidnie zautomatyzowane. Ale – jak widać – da się.

      1. Czas reakcji mojego układu nerwowego na widok kostki rubika jest zbliżony, a nie pytajcie mnie, jaka to reakcja…

  2. Czy ta wiedza w ogóle jest do życia potrzebna? W sensie, czy przydaje się w innych jego aspektach? Zastanawia mnie to zawsze, kiedy widzę facetów w TV układających kostkę w kilku ruchach na kilkudziesięciu zawodach tego typu i po co?

    1. No cóż. Ludzie od zawsze uwielbiali mierzyć lepszość bądź gorszość jednym nad drugimi. Kiedyś lepszy był ten, co miał więcej bananów, albo szybciej je zbierał. Teraz milisekundy decydują o zwycięstwie lub porażce lekkoatlety, starcraftera albo speedcubera. Poszukiwanie w tym jakiegkolwiek sensu całkowicie mija się z celem 😉

      1. a jak już się znudzą klasyczne walki o milisekundy to robią zawody w układaniu kostek stopami lub bez patrzenia

          1. Też nie potrzebuję patrzec stopami gdy uklafam. Generalnie w ogole patrzę oczami, a nie stopami. Taki juz jestem z natury 🙂

  3. Wiedza do życia niepotrzebna ale do szpanowania jak najbardziej. Rok temu nauczyłem się (wreszcie) układać zwykłą kostkę z jutuba oczywiście czym ubarwiłem niejedne urodziny dzieciaków. Teraz już tego nie pamietam, ale sekwencja wciąż wisi na tablicy korkowej w kuchni gdzieś pod kartkami i rachunkami.

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.