ナンプレ(ナンバープレース)は1から9までの数字が入った縦3×横3のブロックを基本グループとして、その基本グループを縦3×横3に並べたもの。
ルールは縦、横それぞれ9個の数字は重複せず、一つのグループ内の数字も重複しない。
このルールから各マスに入る数字は決まってきます。
ルールは同じで、パズル制作会社ニコリが作成したものは「数独」と呼ばれています。以下の図は「数独」の例。ウィキペデイアより。
さて、私はこのパズルは超初心者で、新聞に載っている問題も最後まで解いたことがありません。
最初はうまくいっているように見えても、最後の方でほころびが出てしまい、どこで間違えたのか判らず、結局最初からやり直しとなり、面倒になって、そこで止めてしまいます。
先日の新聞に正解者の中から抽選で景品が当たるナンプレの問題が掲載されていました。問題レベルは「中級」とのこと。
やってみましたが、いつものごとく、後半にさしかかったところでほころびが出てしまい、どこで間違えたのかわかりません。どの数字も、絶対これだという思いで記入していったのに。
私の解き方は、各数字の余白に、候補となる数字を鉛筆で小さく書いていき、消し線で候補を絞っていくというもの。
やっている間によく分からなくなり、消しゴムで消したり・・・
そのごちゃごちゃ感があるので、何処かで間違えるのかもしれません。
ということで、紙と鉛筆ではなく、Excelシートを使って、候補の数字が明らかになるようにしてみました。
関数とかマクロを使うのではなく、新聞紙上の問題をそのままExcelに転記して、鉛筆と消しゴムをキーボードに置き替えただけの原始的なやり方です。
結果は上々。ですが、Excelシートへの転記など、フォーマット作りまで含めると、数時間はかかりました。
解いている間は夢中でしたが、解き終わった後にその使った時間を改めて考えると、何してんだろう・・・結構がっくりしたことも報告しておきます。
作ったExcelシートを紹介します。一つのマスメにつき、1~9の数字を用紙したものを9×9=81個、Excelシートに並べていきます。
1~9が横に並んでいて、これが候補となる数字。候補でない数字は消していきます。その左下の太枠の1マスに数字を入れていきます。
以下は数字記入前のフォーマットです。
ここに、新聞に載っている問題の数字を入力していきます。
大人の事情で、入力した数字は灰色に塗っています。
次に、ナンプレのルールに沿って、縦横、各グループで、重複を確認し、候補にならない数字を消していきます。
また、最初から提示してある数字の部分には黄色で着色しました。
余分な数字を消していくと、最終的に赤丸で囲んだ数字が、入るべき数字として確定しました。
次に、この数字を太枠の中に記入します。
それから、また同じように新たに記入した数字を考慮して、ルールに照らし合わせて、候補にならない数字を消していきます。
これを繰り返していくと最終的には全ての数字が空欄に入っていきます。
数字の消し込み方を間違えない限り、正解にたどり付けます。
初級~中級では、この縦、横、各グループでの重複に気をつけていれば解けますが、上級になると、他の列の並び具合も考慮していく必要があります。これが難しい。
試しに上級編を、このやり方でやってみましたが、最後の詰めで辻褄が合わなくなりました。何処かで誤っていたのです。
Excelの良いところは、入力をキャンセルして、ドンドン後戻りできますので、やり直しが比較的容易です。
但し、どこで間違ったか分からない場合も出てきます。
数字を入れるのは、確実にこれだ。これしかないと確定したものを入れていきますが、どこかで綻びがでてきます。
今後は、関数やマクロを使用して解法を研究していきたいと思います。