← StudyX Devlog

ナンプレ(数独)の解き方:初心者が最初に覚える基本の手筋

OBARA HirokiOBARA Hiroki · DeveloperSudoku365使い方
ナンプレ(数独)の解き方:初心者が最初に覚える基本の手筋

ナンプレ(数独)のルールは3行で書けます。9×9のマスに1から9の数字を入れる。どの横の行にも、どの縦の列にも、太線で囲まれた3×3のブロックにも、同じ数字は1回ずつしか入らない。最初から入っている数字(手がかり)は動かさない。

ルールはこれだけなのに、初めて盤面を前にすると、どこから手をつければいいのか分からなくなります。この記事では、初心者が最初に覚えるとよい手筋を、覚える順番に並べました。かんたんな問題なら、最初の3つだけで最後まで解けます。

言葉をそろえておきます。横の並びを「行」、縦の並びを「列」、3×3の太枠を「ブロック」と呼びます。あるマスに入る可能性のある数字を「候補」と呼びます。

1. ブロックの中で、ある数字の場所を探す

最初に覚えるのは、ひとつの数字に注目して、それがブロックのどこに入るかを探す方法です。英語では hidden single と呼ばれます。

たとえば、左上のブロックに5がまだ入っていないとします。盤面の1行目のどこか(別のブロック)に5があれば、左上のブロックの1行目には5は入りません。2行目にも別のブロックで5があれば、2行目にも入りません。さらに2列目のずっと下に5があれば、2列目にも入りません。こうして線を引くように消していくと、左上のブロックで5が入れるマスが1つだけ残ることがあります。そこが5の場所です。

自作の例で示します。「・」は空いているマスです。

・ ・ ・ | ・ ・ 5 | ・ ・ ・
・ ・ ・ | ・ ・ ・ | ・ 5 ・
8 ・ ・ | ・ ・ ・ | ・ ・ ・

・ ・ ・ | ・ ・ ・ | ・ ・ ・
・ ・ ・ | ・ ・ ・ | ・ ・ ・
・ 5 ・ | ・ ・ ・ | ・ ・ ・

左上のブロックで5が入れるのは、1行目でも2行目でもなく(どちらの行にも5がある)、2列目でもない(下に5がある)マスです。残るのは3行目の1列目と3列目ですが、1列目には8が入っています。だから5は3行目の3列目に決まります。

この手筋のよい所は、数字を1つ決めて盤面全体を眺めるだけでよいことです。手がかりの中でいちばん多く出ている数字から始めると、消える線が多いので見つかりやすくなります。1から9まで順に、9つのブロックを見ていく。最初のうちはこれだけで、かなりのマスが埋まります。

2. 行や列の中で、ある数字の場所を探す

同じ考え方は、ブロックだけでなく行や列にも使えます。ある行に7がまだないとき、その行の空いているマスのうち、縦の列やブロックにすでに7があるマスを消していきます。残りが1つなら、そこが7です。

ブロックで探すより見落としやすいのですが、空きマスが2つか3つしかない行や列は、まずこれで見てみる価値があります。

3. マスに入る数字を探す

1と2は「数字からマスを探す」方法でした。3つ目は逆に、「マスから数字を探す」方法です。英語では naked single と呼ばれます。

1つのマスを選び、そのマスが属する行・列・ブロックにある数字を全部拾います。1から9のうち8種類がすでにどこかにあれば、残る1つがそのマスの数字です。

この方法は、盤面がある程度埋まってから効いてきます。最初のうちは候補が多すぎて、なかなか1つに絞れません。1と2で進めなくなったら、空きマスが少ない行やブロックのマスを、ひとつずつこの目で見ていきます。

メモを書きはじめるとき

1から3で進めなくなったら、候補をメモする段階です。空いているマスの隅に、入る可能性のある数字を小さく書いておきます。

メモは、最初から全部のマスに書く必要はないと私は考えています。全部のマスに候補を書くのは手間がかかるうえ、書き間違いが1つあるとその先が全部くずれます。まず1から3で進められるだけ進め、止まった所で、空きマスの少ないブロックから候補を書いていくほうが確実です。

数字を1つ決めたら、同じ行・列・ブロックのメモからその数字を消します。これを忘れると、メモが実際より多い候補を示してしまいます。

4. ブロックと行・列の関係を使う

メモを使うと、次の手筋が見えてきます。英語では pointing、あるいは locked candidates と呼ばれます。

あるブロックの中で、7の候補が同じ行の2マスにしかないとします。どちらに入るかはまだ分かりません。でも、このブロックの7は必ずその行のどこかに入ります。ということは、その行の、ほかのブロックにあるマスには7は入りません。そこのメモから7を消せます。

逆向きもあります。ある行の中で、7の候補がすべて同じブロックの中にあるなら、そのブロックのほかの行のマスからは7を消せます。

この手筋は、マスを直接決めるのではなく、候補を減らすだけです。けれども、減らした結果、別の所で1や3が使えるようになります。

5. 2つのマスの組を使う

もうひとつ、覚えておくとよい手筋があります。英語では naked pair と呼ばれます。

同じ行の中に、候補がどちらも「2と6」だけのマスが2つあるとします。2と6は、この2マスで使い切ることになります。どちらがどちらかは分からなくても、その行のほかのマスには2も6も入りません。そこのメモから2と6を消せます。同じことは列やブロックでも成り立ちます。

おすすめしない解き方

ひとつだけ、おすすめしない解き方を書いておきます。理由なく数字を入れてみる、当てずっぽうです。

ナンプレの問題は、ふつう答えが1つに決まるように作られています。つまり、どのマスも、筋道をたどれば必ず理由をもって決まるはずです。当てずっぽうで入れた数字が正しくても、それは解いたのではなく当たっただけです。間違っていれば、その数字をもとに決めた先のマスが全部くずれ、どこから間違ったのか分からなくなります。

止まったときは、入れる前に「なぜここなのか」を言えるかどうかを自分に聞いてみるとよいと思います。言えなければ、まだ見ていない数字か、見ていないブロックがあるはずです。

覚える順番

まとめると、順番はこうです。ブロックで数字の場所を探す。行や列でも探す。マスに入る数字を探す。止まったらメモを書く。メモを使って、ブロックと行・列の関係、2つのマスの組で候補を減らす。

最初の3つは、メモなしで頭の中だけで使える手筋です。かんたんな問題はこれで十分です。4と5はメモがあって初めて見えてくる手筋で、ふつう以上の問題で必要になります。

Sudoku365 で練習するなら

Sudoku365 は、私が作っているナンプレのアプリです。iPhone、iPad、Android で遊べます。「かんたん」「ふつう」「むずかしい」「エキスパート」の4つの難易度に300問ずつ、計1200問が入っています。

収録している「かんたん」の300問は、この記事の1から3の手筋だけで最後まで解けることを、ソルバーで確かめてあります。「ふつう」では1から3だけで解き切れる問題はなく、4のブロックと行・列の関係を加えると、7割ほどの問題が最後まで解けます。最初の3つに慣れたい方は「かんたん」から、メモを使う手筋を練習したい方は「ふつう」から始めるのがよいと思います。

練習に使える機能もあります。マスを選ぶと、同じ行・列・ブロックと、同じ数字のマスがハイライトされるので、1の手筋で数字の場所を探すときに見やすくなります。「メモ」をオンにすると候補を書けて、設定の「メモから数字を消す」(初期はオン)にしておくと、数字を決めたときに関係するマスのメモが自動で消えます。「配置済み数字ボタンを隠す」(初期はオン)では、9つ全部置いた数字のボタンが消えるので、残っている数字が分かります。

「間違えた数字を表示」(初期はオン)では、間違えた数字がすぐに分かり、ミスとして数えられます。ミスが3回でゲームオーバーです。当てずっぽうがすぐに分かる仕組みなので、理由をもって入れる練習には向いていると思います。

アプリは無料で、広告が入ります。「広告を削除」の買い切り(300円)で広告を消せます。最初の一問の始め方はSudoku365 の始め方に、毎日の続け方はSudoku365 活用のヒントに書きました。

ナンプレは、運ではなく理由で進むパズルです。1つのマスに理由が見つかると、そこから次の理由が見えてきます。最初は1つの数字、1つのブロックから始めてみてください。

App Store でダウンロード Google Play で手に入れよう