ルービックキューブを崩すのはどのくらい難しいのか

「何回くらい回せば崩したことになるのかな?」とかが気になって、この記事を読んでいるなら、悪いことを言わないので、csTimerとかのスクランブル機能を使ってほしい。 この手のツールは、ルービックキューブの可能な配置43,252,003,274,489,856,000通りから等確率に配置を生成してくれる。 崩すという意味ではこれが正しいはず。

cstimer.net

この記事での「崩す」の定義は、「6面全てに6色が現れるようにする」である。

元ネタはこの動画。

www.youtube.com

動画の概要。

  • ルービックキューブを揃えられる人と、揃えられない人が対決したい
  • 揃えられる人が揃える時間と、揃えられない人が崩す時間で比べよう
  • 「崩す」とは「6面全てに6色が現れるようにする」ことである
  • あれ、崩すの難しくない?

という流れ。 それで、どのくらい難しいのかが気になった。

難しさの評価というのも難しい。 揃えた状態というのは約4千京個の中に1個しかなく、ある意味で一番難しいが、揃えられる人にとっては簡単である。 とりあえず、キューブの全ての可能な配置の中に6面全てに6色が現れるものがどのくらいあるのかと、揃った状態から6面全てに6色が現れるようにするまでの最小手数を調べた。

使ったプログラムはここ。

github.com

6面全てが6色となる確率

厳密な値を得たいが、難しいので、キューブの配置をランダムに1億個生成して調べた。 他の場合も気になるから、色数が最小の面の色数と、色数が最大の面の色数別に集計した。 見方がちょっと難しいかもしれない。 min, max = 2, 3 のところに1と書いてあるのは、各面の色数が2色から3色までの配置は1億個中に1個しかなかったということ。

min\max 1 2 3 4 5 6 sum
1 0 0 0 0 13 0 13
2 0 1 1,357 78,059 106,067 185,484
3 0 39,695 4,563,479 8,834,256 13,437,430
4 34,643 17,218,401 51,445,599 68,698,643
5 1,854,157 15,794,432 17,648,589
6 29,841 29,841
sum 0 0 1 75,695 23,714,109 76,210,195 100,000,000

数字は同じだが1億で割ったパーセント表示のほうが分かりやすいかもしれない。

min\max 1 2 3 4 5 6 sum
1 0.000% 0.000% 0.000% 0.000% 0.000% 0.000% 0.000%
2 0.000% 0.000% 0.001% 0.078% 0.106% 0.185%
3 0.000% 0.040% 4.563% 8.834% 13.437%
4 0.035% 17.218% 51.446% 68.699%
5 1.854% 15.794% 17.649%
6 0.030% 0.030%
sum 0.000% 0.000% 0.000% 0.076% 23.714% 76.210% 100.000%

あるいは、逆数にして、何個中1個がそういう配置だったかというのもありか。

min\max 1 2 3 4 5 6 sum
1 - - - - 7692307.69 - 7692307.69
2 - 100000000.00 73691.97 1281.08 942.80 539.13
3 - 2519.21 21.91 11.32 7.44
4 2886.59 5.81 1.94 1.46
5 53.93 6.33 5.67
6 3351.09 3351.09
sum - - 100000000.00 1321.09 4.22 1.31 1.00

見るべきは、min, max = 6, 6 のところの値で、0.03%が6面全てに6色あるような配置だった。 約3,000個に1個。

ちなみに、ある配置から3手で得られる配置の個数は3,240個。 6面全てに6色があるような配置が、キューブの状態空間の中に均等に分布していると仮定するならば、3手程度でそういう配置が作れることになる。

www.cube20.org

約2個に1個は、最小の色数が4で最大の色数が6となる。 へー。

(不完全)1面が揃う確率は、0.000013%しかない。 何となくもう少し高いと思っていた。 でも、たしかに、スクランブルして不完全一面が揃っていた覚えはないな。

6面全てがn色の配置の作りかた

作り方を覚えておけば、動画のような勝負を挑まれたときに役に立つだろう。 そんな機会は無いと思うけど。

パターンキューブを使った作り方と、プログラムで探した最小手数での作り方を載せておく。

1色

これは普通に揃えれば良い。

2色

パターンキューブで各面が2色のものは多い。 チェッカーキューブやヘソキューブが簡単だろうか。

M2 S2 E2

M S M' S'

最小手数は2手。 なるほど、これで良いのか。

R2 U2

3色

私が思いついたのは、チェッカーキューブとヘソキューブの組み合わせ。 チェッカーキューブは対面の色で、ヘソキューブはあるコーナーを中心に回す感じなので、出てくる色が違う。

M2 S2 E2 M S M' S'

パターンキューブで「ケージ」というものがあった。 これ知らなかった。

www.daaokacubeblog.com

L U F2 R L' U2 B' U D B2 L F B' R' L F' R

プログラムで探した最小手数は4手。

R U D' R'

4色

パターンキューブベースで作る方法は思いつかなかった。

ミニキューブインキューブ(↓)を3回行えば各面3個キューブの色が変わると思うかもしれないが、同じ色が出てきてしまう。 ミニキューブインキューブでは、対角線上の2個のコーナーが回転するものの、その回転の方向が逆なので。

www.daaokacubeblog.com

NG例。

B2 R U2 R' U' R U' R' L' U2 L U L' U L B2 y B2 R U2 R' U' R U' R' L' U2 L U L' U L B2 y B2 R U2 R' U' R U' R' L' U2 L U L' U L B2

もちろんそういう配置が存在しないわけではなく、最小3手で作れる。

R U2 F

5色

スーパーフリップでOK。 ルービックキューブは最長でも20手で揃えられるが、20手掛かるパターンとして有名。 全てのエッジが反転していて、各面には4個のエッジがあるので、エッジ以外と合わせて5色。

www.daaokacubeblog.com

B2 R U2 R' U' R U' R' L' U2 L U L' U L B2

最小4手で作ることもできる。

R U D R

6色

本題。

これもパターンキューブベースで作る方法は思いつかなかった。 スーパーフリップからセンターキューブを対面色と入れ替えられれば6色になるが、ヘソキューブと違って、センターを対面と入れ替えることはできない。

これが作れない。 パリティとかそういう話ではなく、キューブを分解しても作れない。コーナーの色の並びが逆だから。

例えば、黄色、緑、赤コーナーの色は、本来はこういう並び。

プログラムに探させた結果はこれ。6手。

R U R2 L2 U L

確率のところに書いた3手程度に比べるとだいぶ手数が多い。 まあ、揃った状態から作ろうとしているからかな。

これを覚えておけば、「揃えるのと崩すので勝負しよう」と言われたときに勝てる。