ナンプレをしていて、ふとExcelで解答するマクロを作ってみたくなり、特定の数字が入らないコマを調べ、行、列、ブロックで1つだけ入るコマがあれば決定させていくという簡単なアルゴリズムで作ってみた。
問題を入力して検証。EasyレベルとMediumレベルの問題に関しては、自動で解けていたが、Hardレベルで解けない問題があった。解答するボタンで、右図のように手詰まりになる。
数4を決めにいっった結果、白の空欄が4の入る可能性のあるコマを示している。各列、各行、各ブロックで複数個のコマがあるため、今のアルゴリズムでは決めることができない。
ところが、I列に注目すると、G4:I6ブロックではI4,I5のいずれかが4になるので、I7には4が入らず、結果H8に4が確定する。
ナンプレは奥が深い。