よく見る数独は3×3×3だけど、2×2×2のサイズの大きさで、解ける問題ははいくつあるか数えるという設問。
こういうパズルの解法ロジックに関わるようなものを作るのは初めてかも。頭の中でアナログに解法を考えて、それを抽象化しながらコードにしていくというプロセスが思いのほかおもしろい。
とりあえず何時間かかけて、解く方のプログラムはできたぽい。ぽいというのは問題を公開しているサイトの問題を入れてみたら解けて、自分で適当な数字を入れて解かせてみたら、おかしな結果にならず解けない問題は解けないということが経験的に何となく確からしいかなという話。
解法のロジックができたら後は早いかと思っていたけど、甘かった。解ける問題を数え上げる方法は、適当に総当たりでしらみつぶしにしていこうかと思ったけど、場合の数が多すぎ。
予めある数字がnこある場合、16Cn×4n通り。天文学的数字の予感。n=3の場合で既に215,040通り。これは無理だ。
何とかして問題を絞るか、あるいはやり方を変えて、完成図の方から空白を入れていく方法にするとかかなあ。むずい。なかなか投稿者が出ないだけある。