« 数毒(独)SUDOKU...私の解き方、その2 | メイン | 数毒(独)SUDOKU...私の解き方、その4 »

数毒(独)SUDOKU...私の解き方、その3

sudoku4

この図は、PCで最初から候補の数字を列挙したものです。

参考にさせていただいたのは、
ナンバープレイスの解き方(VBA初級編) です。

9×9のマスの中は数字だらけ。
この中でセルにたった一つしか数字が入っていなければ、それが確定数字です。
4・2・8の3個しかありません。
行、列、ブロックの斜めにそれぞれ1〜9の数字を検証していって、重複しない数字を配列変数に与え、それらをコンマでつなげて表示しています。

そして、確定された数字をもとに、さらにどんどん同じことを繰り返していきます。

5回やった結果が次の図です。

sudoku5
だいぶ確定数字は増えましたが、一つだけの数字があるセルは何もなくなってしまいました。
行・列・ブロックで重複しない数字をチェックしていくというロジックだけでは、解けないということです。

そこで、EC研究所で出されているフリーソフトを使ってみます。

EXCEL完全解答ナンプレ(9*9)解法マクロ
ナンプレ(9x9)を完全解答するEXCELマクロで 試行錯誤ルーチン搭載、複数解答サーチ搭載

初めのうちは、この試行錯誤ルーチンなるものは何のこっちゃ状態でしたが、はたと気づきました。
候補数字にループがかかった状態だと、このセルがもし〇〇だったらどうなるかシミュレーションする必要があります。
ははーん、このことをいっているのか、だから、
「試行錯誤ルーチンを組み込んでいますので初期値がまったくない問題も解きます。」
なんてことが起きるのね。

初めのVBAには試行錯誤ルーチンは搭載されていないので、解けない問題も出てきます。
後のEC研究所ので解けない問題があったら、それはきっと問題に不備があるのでは。

プログラム上ループを何回、回したかによって、そのSUDOKUのレベルを初級・中級・上級に決めているのではないかと思うのですが、市販の本などのレベルはいったいどうやって決めているのか、はなはだ疑問。
上級の問題がスラスラ解けるようになったので、中級の問題を解いていると全然解けない。
そこで、またまたVBAで解いてみると、Very Hard なんてことはざらにあり、中級で手こずっているのに、上級の問題で全くもって簡単に、悩むことなく解けてしまうなんてこともあるのです。
だから、上級の問題を解けるようになってから、中級が解けなくて悲観するなんてことは全然ありません。
問題を作成した作者の考えでレベルをつけているだけで、自分の解き方に合っていればスラスラ解けるし、合わなければひたすら悩むことになります。

次回は、実際に私がどうやって解いているかを具体的に。

関連記事:
数毒(独)SUDOKU...私の解き方、その1
数毒(独)SUDOKU...私の解き方、その2
SUDOKU
SUDOKU その2

コメントを投稿