見出し画像

魔法の正体

ルービックキューブをカシャカシャと回したら、ものの10秒で揃ってしまう。魔法のようですね。


ルービックキューブを舐め回すように見たと思ったら、目隠しをして回し、揃えてしまう。魔法のようですね。


何も存在しなかったところから何かを作り出す。魔法のようですね。

でもこれらはもちろん魔法ではありません。


この記事ではこれらの「魔法」の正体を紹介します。ここで紹介する魔法に興味がある人も、それ以外に何かやりたいことがある人も、色々は人の参考になれば良いと思って具体例を示します。


目を開けてルービックキューブを揃える魔法

目を開けてルービックキューブを揃えるという、いわば「魔法」の正体は、大量の手順暗記と逐一行うパターンマッチングです(それと、前提として競技用のとても回しやすいルービックキューブを使っています)。

私の場合は70から80の手順と無数の定石を覚えています。これでも少ない方で、速くなりたい人は普通100程度覚えます。

そして、ルービックキューブを解くというのを4つ程度のフェーズに分解します。画像の奥左のぐちゃぐちゃ状態から手前右の完成状態へと、だんだんパズルを揃えていきます。

iOS の画像(22)

各フェーズの境目で高速にパターンマッチングを行っています。「この状態ならこう回す」というのを高速に判断しているのです。

よって、ルービックキューブを目を開けて解く魔法は膨大な知識と高速な判断でできていると言えます。


目隠しでルービックキューブを揃える魔法

これは特に魔法のように見えますね。でもこれはルービックキューブの状態を18文字程度の文字列の変換して覚え、各文字に対応する手順を目を閉じて回しているだけなのです。

ルービックキューブに関する知識がないと何を言っているのかわからないと思いますので軽く説明します。まずはルービックキューブを揃えるための理論の軽い説明です。

特に数学で「置換」という考えがあります。例えば

画像4

のような置換を考えましょう。文字の入る位置に番号を上から

画像3

と振ると、この置換はそれぞれの場所について、

1->2
2->4
3->1
4->3

と置換していることになります。ここで、この置換をスワップ(2点交換)だけを用いて表してみましょう。

// 初期状態は[b, d, a, c]
1<->3 // 1の場所の文字が揃う 操作後は[a, d, b, c]
2<->3 // 2の場所の文字が揃う 操作後は[a, b, d, c]
3<->4 // 3と4の場所の文字が揃う 操作後は[a, b, c, d]

スワップだけで置換が表せました。実はどんな置換についても必ずスワップだけで表すことができます。

ここでルービックキューブの話に戻りましょう。ルービックキューブは分解するとたくさんのパーツからできていることがわかります。

iOS の画像(24)

ぐちゃぐちゃになったルービックキューブはこのパーツたちがぐちゃぐちゃに置換されている状態を意味します。つまり、ぐちゃぐちゃになったルービックキューブを揃えるには適切にパーツを置換してやれば良いのです。ただ、様々な置換が考えられる中で適切な置換を一気に回すことは人間には不可能です。そこで先程の、置換を複数のスワップに変換する手法を取ります。

実際にはスワップが2点交換でなく3点交換であることもあったり、スワップする1つ目のパーツの位置を常に固定したりと様々なテクニックを使ってわかりやすくするのですが、要するに、各スワップに平仮名を割り振っておいて、その平仮名を短期的に記憶しておきます。そして、各スワップには決まった手順があるので、各(スワップを表す)平仮名に対応する手順を回します。

ざっくりとした説明ですが、これが目隠しルービックキューブの魔法の正体でした。


無からものを創り出す魔法

無からものを創り出すことは、実は一番「魔法」に近いかもしれません。これといった正体はなく、私でもなんだかよくわからないままにものを作っています。ですが、さすがにそれでは話にならないので、ここでは私のものづくりをいくつかのステップに分けて解説します。

1. 思いつく
2. 構想を練る
3. 設計する
4. 加工する
5. 必要に応じて3と4を繰り返す
6. 完成

思いつく
思いつくときは突然やってきます。衝動的に何かを作りたくなる瞬間だったり、これまでの経験が組み合わさって新たなものが生まれる瞬間だったりします。

構想を練る
思いついたことは突飛なことがとても多いです。そこで、思いついたら即座にそれを今の技術で実現可能な形に落とし込みます。技術的に可能か、加工法はどうするか、スペースや重さ、強度は大丈夫か、などなどです。これらのざっくりしたパラメータを設計に使います。

設計する
構想段階にあるものについて、具体的な寸法を入れて設計していきます。この段階で新たな制約がわかった場合には構想段階に戻ります。設計は頭の中の3Dモデルに寸法を入れていくイメージでやることが多いです。

加工する
構想で決めた加工法に従って部品を加工していきます。私の場合は手加工、CNCフライス加工、3Dプリントが多いです。

設計・加工を繰り返す
一度ものを完成させるとすぐに新たな改善すべき点がわかる場合が多いです。設計段階に戻って改善し、また加工し直すというサイクルを繰り返します。私の場合は少なくて1-2回、多いと10回程度のサイクルを回します。

完成
納得できるものができたら完成です。PVなどを作って世間に公開することが多いです。


まとめ

ここまで具体的に私が持っている「魔法」の正体を紹介しました。様々な人にとって理解しやすい説明を心がけたつもりですが、至らない点はあると思います。

魔法には必ずと言って良いほど正体があります。それは工夫された方法だったり、熟練の技だったりします。前者は理解が大変、後者は練習が大変ですから、これらが魔法に見えてしまうのだと思います。

正体を知れば魔法の攻略法が見つかるかもしれません。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
2
ルービックキューブとものづくりとプログラミングが心から好きです Co-Design Maker ハードウェアとソフトウェアとスピードキューブと物理数学 未踏スパクリ 技育展最優秀賞 JPhO銀/実験優秀 DMM.make AKIBA スタートライン