8パズルはゴールからの探索も同時進行して途中でぶつかるまでやると効率がよくなりそうな気がする。確かめたわけじゃないので気がするだけw
Pythonにはint.bit_length()というビット長を教えてくれる関数がある。a = 3; a.bit_length()とすると2が返ってくる。0のときは0が返ってくる。
Pythonでは、関数を変数に代入したり、関数のリストを作ったりできる。辞書に関数を入れればcase文みたいなこともできる。
@kwappa 問題になるほど高額でもないし、そもそも事務にかかる経費考えると赤字だろうし。受け付けたけど見ないで積んでおくのが推奨ということみたいですねw
解けない場合、全空間探索して駄目だったってことだから、解けない問題をスキップすると半分以下の時間で終わるということになる。
ほぼ1時間で01→04まできた。最終的に01→98までの72通りだから72/3=24で24時間くらいかかることになるorz
8パズルの全結果。
初期状態から到達可能なのは181440 (9!/2)。
最短手は平均して21.97手。
最長は31手で2通り。
647850321と867254301の2通り
※コメント投稿者のブログIDはブログ作成者のみに通知されます