最短何回で完成できる? ルービックキューブのアルゴリズムと数学の関係

竹内薫先生が校長を務めるYES International Schoolは、STEM教育の一環として竹内先生自ら数学を教えています。今回は玩具のルービックキューブで授業を行いました。ルービックキューブと数学、いったいどこにつながりがあるのでしょうか。

ルービックキューブを授業に

YES International Schoolで私が受けもっている算数・数学プログラミングの授業(小4以上)は、通常、授業の冒頭で各自がインターネットにつないで、Wolfram Cloudで「その日の課題」をやりはじめ、その後、勝手にプログラミングで遊ぶ時間になります。

でも、今週は、少し勝手が違いました。子どもたちは粛々と色鮮やかな立方体を回し続けていました。そう、玩具のルービックキューブを教材として使うことにしたのです。

玩具というと怒られるかもしれませんね。いまやルービックキューブをいかに速く完成させるかで競う世界選手権が多数開催され、「スピードキューブ」として有名ですから。たしか、世界記録は3・47秒だったかと思います。あの複雑なルービックキューブを、バラバラな状態から4秒以下で完成させることができるなんて、にわかには信じられませんが、厳然たる事実です。

ルービックキューブは、もともとハンガリーの建築学者ルビク・エルネーさんが1974年に考案しました。その後、1977年にハンガリーで玩具として発売され、1980年に世界中に広まり、一大ブームを巻き起こしました。

1982年に初めて世界規模の大会が開かれ、そのときの世界記録は22・95秒でしたが、その後、急速に人気がなくなり、ルービックキューブは世界中の家庭のおもちゃ箱の片隅でひっそりと眠り続けることになります。なぜ、人々の熱狂が一気に醒めてしまったのかは定かではありませんが、もしかしたら、ほとんどの人が解けないか、諦めて解説書と睨めっこしながら解いてみて、真の面白さを素通りして、飽きてしまったのかもしれません。

ルービックキューブですが、2000年代に入り、奇跡的な復活を遂げます。もともと、自分で工夫しながら解くのが楽しいのですが、4,325京2,003兆2,744億8,985万6,000通りもの配置があり(対称性を考慮しても約90京通りあり)、適当な試行錯誤で完成させることは、ほぼ不可能です。つまり「キューブ世界」は、一部のパズルオタクや数学能力に秀でた人々だけのものでした。

でも、インターネットとSNSの普及がこの閉塞状況を変えました。まず、一般のパズル愛好家たちが、数種類の「奥義」を知ることで、ルービックキューブを短時間で完成させ、さらに進んで、自分たちで奥義の開発に勤しむ流れが生まれました。

そして今では、パズル愛好家から、ふたたび一般の人々へとルービックキューブへの関心が広がっているのです。

アルゴリズムと数学

さて、いま「奥義」と書きましたが、専門用語(?)を使うと、「アルゴリズム」のことです。ぶっちゃけ、完成に至るまでの「手順」ということですね。

ルービックキューブには、上面、下面、右面、左面、前面、背面の6つの面があり、それぞれ英語の頭文字をとって、順回転(右ねじ回転)をU、D、R、L、F、Bという記号であらわします。逆回転にはU’のようにプライム記号をつけます。また、同じ方向に2回転させるときは2Rなどと書きます。さらには、真ん中の層だけを回すときは、M、S、Eなどの記号も使います。

すみません、もうこの記号がたくさん出てきた時点で、みなさんの悲鳴が聞こえはじめたので、詳しい話は端折って結論だけ書きますが、要は、各面をどういう手順(アルゴリズム)で動かしていくとルービックキューブが完成できるか、という話なのです。

これはまさに数学です。

みなさんが学校で教わった方程式の解法にもアルゴリズムがあります。人類で最初にそのアルゴリズムを発見した人は天才ですが、いったん発見されてしまえば、人類でそのアルゴリズムを共有できます。数学の歴史は、アルゴリズム発見の歴史なのです。

ここで、みなさんの頭の中には、ルービックキューブのアルゴリズムが、プログラミングとどう関係するのか?という疑問が頭をもたげているかもしれません。

実は、プログラミングはアルゴリズムを集めたものであり、ゆえにその本質は「数学」なのです。ということで、ルービックキューブで遊びながらアルゴリズムを学ぶことで、プログラミングのセンスを磨くことが可能だというわけです。

ちなみに、最大限(?)バラバラになった状態からルービックキューブを完成させるための「最短手順」の個数は「20」だとされています。ちょっと驚きですよね。4325京の配置があるのに、その配置の一つ(=バラバラ)から別の配置(=完成)にいたるまで、たった20回、面を回せばいいのですから(正確には、2回転があるので24回転)。

どうやって子どもたちと遊ぶか

実際の授業の様子について書いてみたいと思います。

まず、子どもたちに配る教材のルービックキューブは、百均ではなく、インターネットで(それなりに)質の高いものを選びます。「ルービックキューブ」はメガハウスの登録商標で、もちろん、この元祖ルービックキューブを購入してもかまいません。

私の生徒は5〜6名なのですが、6個パックで2700円以下と廉価でありながら、質が保たれているものとして、たとえば、QiYi Warrior Sなどが個人的にオススメです。私自身は、YuLong V2 Mという1200円程度のものを使っています。

これまで一度も全面完成させたことがない小学4年〜中学生に、まず味わってもらうのは、自分の手で完成できた、という達成感です。そのためには、安易にアルゴリズムを教えるのではなく、少し寄り道をして苦労してもらう必要があります。

でも、ルービックキューブは、初心者にとっては難攻不落の城なので、当然、攻略法を段階的に伝授します。以下、実際に手を使って回してみないと実感がわかないと思います。回さない方は、アルゴリズムの説明は読み飛ばしてください。

【コラム】全体的な流れとしては、真ん中が黄色く花びらが白の「デイジー」

(十字)を作ってもらい、花びらを反対面に移すと、白十字ができます。白十字を「底」にして、次に下の四隅を入れていきます。お目当ての下の隅を決めて、その真上に入れるべきピースをもってきたら、ここで最初の便利なアルゴリズムが登場します。

それは「RUR’U’」です。右面を向こうに、上面を順回転、右面をこちらに、上面を逆回転。一度では向きが間違っているかもしれませんが、この同じ動きを何回か続けていると、ちゃんとハマります。ちなみに、この動きは6回続けると、最初の状態に戻ります。

次は、いま入れた下面の四隅のすぐ上です。全面を回す、少し余分な動きが必要ですが、基本となるアルゴリズムは「RUR’U’」とその鏡像の「L’U’LU」だけです。さて、この段階で、下の2つの層は完成されています。

いまは下面を白にしているので、上面は黄色なのですが、まずは黄色い花びらのデイジー(黄十字)を作ります。それから黄色面の四隅の色味が合っているかを見定めて、合っていなければ、「RUR’U’」と「L’U’LU」を3回ずつ使ってそろえていきます。

この時点で黄色面の四隅は、方向がバラバラなので、花びらを全面黄色にするために、くりかえし「RUR’U’」を使ってそろえます。

最後に、黄色い面の「辺」を入れ替えますが、やはり、「RUR’U’」と「L’U’LU」を1回ずつ実行し、さらに5回ずつ実行するだけです。

インターネットにもたくさんの情報が載っていますが、私が子どもたちに勧めているのは、このCUBASTICさんの4つの動画です。

ルービックキューブを解く方法|最も簡単なチュートリアル

youtu.be

ポイントは、「ルル姉妹」(RUR’U’とL’U’LU)という2つの基本アルゴリズムさえ使いこなせれば、小学生でも時間をかけてルービックキューブを完成させられる、ということ。

ちなみに、この方法では、憶える(覚えてしまう)アルゴリズムは2つだけでしたが、手数が多いので、子どもの初心者の場合、完成までには小一時間かかります。

ここまでで、実際には数時間の授業を費やしてきましたが、そろそろ、ステップアップの時間。ルル「以外」のアルゴリズムを使えば、もっと少ない手順で完成させられるのではないのか? そんな疑問が自然と子どもたちの間から生まれます。つまり、近道があるのではないのか、ということです。

あります(笑)。

スピードキューブの競技者たちは、何十ものアルゴリズムを憶えて、目にも留まらぬ指の動きで、10秒以下で完成に持っていくことができるようです。でも、それはスポーツ競技の選手の話であり、われわれのような一般愛好家は、ゆっくり楽しみながら、どうでしょう、数分かけてキューブ世界を散策して楽しむのがいいのではないかと思うのです。

ちなみに、物理屋の私が憶えているのは、黄色の四隅を入れ替える「Niklas」、全面黄色に持っていく「Sune」、そして、最終局面の「辺」をそろえるための「Allan」、「Arne」、「Bert」くらいです(その他、Bruno、Clix、Eve、Evelynなども有用)。

ルルだけだと時間がかかって大変ですが、それに加えて、5〜9個のアルゴリズムと友達になれば、数分で完成まで持っていかれるため、楽しみが増えます。さらに探究心が深まれば、2個同時に四隅の底に入れていくF2Lと呼ばれる方法などもあり、子どもたちは、アルゴリズムとの上手い付き合い方を学んでくれるはずです。

丸暗記はダメ

ただし、アルゴリズムの丸暗記はダメです。二次方程式の解の公式を探究せずに丸暗記したら、数学=アルゴリズムの面白さはゼロですよね。ミステリーのネタバレみたいなもんです。試行錯誤も交えながら、アルゴリズムを探究することで、数学的な「意味」がわかり、小さな感動へとつながるのです。

私の授業は、ふたたび算数・数学プログラミングに戻りますが、今後も、適宜、ルービックキューブの少し高度なアルゴリズムを紹介しながら、関連する「置換群」という数学の話なども織り交ぜて、子どもたちの数学的な好奇心の芽を育てるつもりです。

読者のみなさんも、ここにあげたネット情報などを参考に、親子でルービックキューブの数学迷宮を探索してみてはいかがでしょう?