chikaku

且听风吟

永远是深夜有多好。
github
email

三階魔方の状態数の計算

前几天和同僚と食事をしている時に、"任意の状態の 3x3 ルービックキューブを元に戻すために最大で何手必要か" (ゴッドナンバー) について話し合っていた時に、三阶魔方のすべての可能な状態数を計算する方法についても話しました。当時はあまり詳しく考えず、後で資料を調べて再考しましたので、ここに記録しておきます。

三阶魔方の状態数の計算#

image image

これは普通の 3x3 ルービックキューブの立体図と展開図です。合計 6 つの面があり、6 つの中心ブロック(中心ブロックは回転しないため、状態数を考慮する必要はありません)、8 つの角ブロック(それぞれ 3 つの面の色があります)、12 個のエッジブロック(それぞれ 2 つの面の色があります)があります。

角ブロックの状態数#

角ブロックは 8 つの位置にありますので、位置の状態数は 8!8! です。各角ブロックには 3 つの面の色がありますが、色の状態数は 3!3! ではありません。展開図の赤い面の左下の角ブロックを考えてみましょう。3 つの面の色の時計回りの順序は固定されています:[緑赤黄] どのような回転をしても、[黄赤緑] のような状況(キューブを分解して再構築しても不可能)は起こりません。したがって、各角ブロックには 3 つの色の状態しかありません、つまり ABC CAB BCA です。

さらに考慮すべきことがあります。角ブロックの状態は互いに影響し合います。7 つの角ブロックの位置と色がすでに固定されている場合、最後の 8 番目の角ブロックの色も確定します。つまり、他の 7 つの角ブロックの状態を変更せずに最後の 8 番目の角ブロックの色の状態だけを変更することは不可能です。したがって、最後の角ブロックの色の状態数は 11 です。角ブロックの総状態数は (83)(73)...(23)(11)=8!37(8*3) * (7*3) ... (2*3) * (1*1) = 8! * 3_{}^{7} です。

エッジブロックの状態数#

角ブロックと同様の分析方法を使用します。合計 12 個の位置があり、位置の状態数は 12!12! です。色の状態は AB と BA の 2 つしかありませんが、最後のエッジブロックの色は固定されています。したがって、エッジブロックの総状態数は 12!21112! * 2_{}^{11} です。

総状態数#

角ブロックの状態数とエッジブロックの状態数がわかりましたが、直接乗算すると不可能な状態が含まれてしまいます。

まず、明確にしておくことがあります:他のブロックの状態を変更せずに、2 つの角ブロック(または 2 つのエッジブロック)の位置を交換することは不可能です。なぜなら、ルービックキューブを回す際には面ごとに回すため、各ブロックの回転は周囲のブロックに影響を与えるからです。

正常な状態 s1=...AB...s1 = ...AB... にルービックキューブを回すと仮定しましょう。ここで ABAB は 2 つの角ブロック(または 2 つのエッジブロック)の位置の状態を表しています。明らかに、s1flip=...BA...s1_{flip} = ...BA... のような、s1s1 の位置の ABAB を反転させるだけで他のブロックの状態を変更しない状況は起こりません。しかし、私たちが直接乗算して得られるすべての状態には、実際には各合法な状態とその反転状態のセットが含まれています:

{s1,s2,..,sn,s1flip,s2flip,..,snflip}\left \{ s1, s2, .., sn, s1_{flip}, s2_{flip}, .., sn_{flip} \right \}

したがって、総状態数を計算する際には 22 で割る必要があります。最終的な結果は:

1/28!3712!211=432520032744898560001/2 * 8! * 3_{}^{7} * 12! * 2_{}^{11} = 43252003274489856000

参考:calculating-the-number-of-permutations-of-the-rubiks-cube

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。