ルービックキューブと数学


 

ルービックキューブ数学の関係を少し議論してみます。まずは、最も単純なルー

ビックキューブ(1X1X6)から始めます。 この場合、可動部は存在しません。従っ

て、六面ある面の色の組み合わせがどうなるかを検討します。 色は

の六色です。まず、六色から二色を選ぶやり方は、です。 つまり、15

りです。 そして、残りの四色から二色を選ぶやり方は、です。これは通りにな

ります。ゆえに、上下左右前後の面の組み合わせで色分けするやり方は、

 

(15通り)X(6通り)=90通り

 

になります。ここで、上下・左右・前後の区別をしなければ、上の数字をで割って

通りです。 但し、上下と左右の面だけでは区別が付きませんが、これに前後の面

が付加されると、それらの面の配色状況で区別が付くようになります。よって、最終

的な組み合わせは30通りになります。例えば、

 

上−下 →

前−後 →

左−右 →

 

 

上−下 →

前−後 →

左−右 →

 

は区別できます。前後の面の色だけが逆になっている場合です。 ここで、正六面体

の対称性から言って、 上下・左右・前後の区別に意味はありません。 単に、便宜的

なものです(対向する面の色の組み合わせが重要)。

 

対向面の色の組み合わせを求めるプログラム

 

次に、ルービックキューブ(2X2X6)を考えます。 各面に枚のパネルがあり、当

然、それらのパネルを回転させて動かすことができます。図1は動かす前のパネル

を四つの方向から3D描画させたものです。方向は、

 

方向1: θ=45度、φ=45

方向2: θ=45度、φ=135

方向3: θ=−135度、φ=45

方向4: θ=−135度、φ=135

 

です。

 

RUBIK-CUBE-AND-MATH-1.GIF - 7,957BYTES

(図1、十進BASICによる3Dグラフィックス)

 

この場合の回転動作を行う外部副プログラム名は以下のようになります。

 

Z軸に関して

Z2CROTATION(二段目のパネルを時計方向に90度回転)

Z2AROTATION(二段目のパネルを反時計方向に90度回転)

Z1CROTATION(一段目のパネルを時計方向に90度回転)

Z1AROTATION(一段目のパネルを反時計方向に90度回転)

 

X軸に関して

X2CROTATION(二段目のパネルを時計方向に90度回転)

X2AROTATION(二段目のパネルを反時計方向に90度回転)

X1CROTATION(一段目のパネルを時計方向に90度回転)

X1AROTATION(一段目のパネルを反時計方向に90度回転)

 

Y軸に関して

Y2CROTATION(二段目のパネルを時計方向に90度回転)

Y2AROTATION(二段目のパネルを反時計方向に90度回転)

Y1CROTATION(一段目のパネルを時計方向に90度回転)

Y1AROTATION(一段目のパネルを反時計方向に90度回転)

 

これらの回転動作のコマンドを組み合わせることで、 パネルの状態がどうなるかを

考えましょう。コマンド名は外部副プログラム名の最初の三文字を取っています。

 

図2は、 Z2AX2AY2AZ1CX1CY1Cという順番でコマンドを実行し

た後のパネルの状態です。

 

<図1からの回転動作>

RUBIK-CUBE-AND-MATH-2.GIF - 8,289BYTES

(図2、十進BASICによる3Dグラフィックス)

 

勿論、上記のコマンド操作の手順を逆に辿れば図1の状態に戻ります。

 

ルービックキューブ(2X2X6)の回転動作版

 

 

 

 

 

 

 


 

Topへ