賢く計算するしかし、同じ面を連続して回すことは状態数が重複してしまい冗長です。1手目でUを回して2手目でU2を回すと完成状態からU’された状態になるがこれはすでに1手目でU’して展開された状態と等しいです。状態が展開されることを考えればよいです。全状態数はそこまでの総和です。15^{(n-1)}}$です。あることがわかります。以下のPythonスクリプトでも計算できます。sequences)さらに状態の冗長性排除を試みます。直前の2手で対面の回転が適用された場合、次の回転は隣接面のみ考えれば十分です。1手目がU、2手目がD2の場合、3手目においてU面かD面をどのように回しても2手目までの状態と必ず重複しますので冗長です。続く動きを排除します。これで目的が達成されます。これを計算する数式が考えつかなったので、Pythonスクリプトで計算します。266,612,528,076,798,235,312$と計算されます。(18)$であるから、同様にして、下限値は18手とわかります。いう用語で定義されています。よって下限値が20であることが示されました。上限値を計算することは、下限値の計算と比べて難しい課題でした。上限値は約4300京通りの全パターンが$X$手以内で必ず解けるような$X$を見つける必要があるからです。上限値の計算は、アルゴリズムの歴史とコンピュータハードウェアの進化の歴史で語れます。歴史を長々と書いてもしょうがないので、ポイントだけ書きます。分割して解くアルゴリズムが優秀でした。書いてあると思います。書いたような気がします。さっき書いたように1995年に下限値が20手であることが示されました。何手であろうと、20手以内に完成できることだけが示せれば良いのです。下限値が20であることが確定している以上、上限値は20を下回ることはありえないからです。多くの時間とメモリを消費します。全4300京通りのパターンを調べあげるという用途ではとてもじゃないが実行不可能だということが予想されています。70億CPU年†2を要すると述べられています。要するという意味です。比較して桁外れに高速なアルゴリズムです。最適解は求められないものの20手以内ぐらいの解答であれば高速で計算できることがわかっています。Google社が所有する巨大な分散サーバコンピュータで計算実験しました。2010年7月、全4300京パターンの全てについて20手以内の解答を見つけました。プログラムの実行には35CPU時間を要したと報告されています。20という数字は今後永遠に更新されなくなりました。最適解の手数の分布を公開しています。ここでは、それを引用します。最適解手順の手数が0手から15手までのパターンは厳密に計算されています。本研究グループは推測値を公開しています。以上の知識をベースとしてここで本記事の冒頭に掲げた質問に回答していきたいと思います。スクランブルに遭遇してしまう可能性はないのか?でした。「全パターンの出現する確率は一意である」という仮定を置きます。この仮定はごく自然です。占める割合を計算すれば良いです。0.000000000007$と計算されます。