2012年
8月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2012-08-18 ルービックキューブの手順

_ ルービックキューブをrubyで

長い時間つきっきりにならないといけない実験のお供に、ルービックキューブをやっていたら、それなりにできるようになった。最初は普通の3*3*3をやっていたが、2*2*2から7*7*7まで全部できるようになってしまった。時間はかかるけど。

3*3*3は20手順で解けることが証明されている。私は一層毎に順にそろえていく手法を取っている。そこで、疑問に思ったのが、二層目まで揃えたあとでの最適な手順はどのようなものかということである。

そこで、以前作ったrubyのプログラムを使って、探索を行うことにした。下の二層を変えずに上の一層を変えるような手順には、どのようなものがあるかを、すべての手順を試して調べるというものだ。

六回の手順のものには、上面に十字を作るときに使われるR' U' F' U F Rという手順と、その逆と鏡映などしかないことが分かった。一方、七回の手順のものには、三つの種類があることが分かった。まずは、三つのコーナーを回転するときに使うR U R' U R U2 R'というものとその派生。次に、三つのコーナーのみを交換するR U' L' U R' U' Lというものとその派生。新しいものとして、R B L' B L B2 R'というものも見つけた。四つのコーナーの位置関係を変えずに、エッジの向きを変えることができるので、そういう場合に使えるかも知れない。