# 難問ナンプレの攻略（仮定法を使わずに解く）

場所: [ホーム](https://puzzle-print.jp/)

配布ページの難問・超難問、基本の解説ページから「もっと詳しく」で進んできた方のためのページです。段と列の番号で盤面の位置が特定できるように書き、要所は配布している問題そのものから作った図でも示します。主役はXY-Wingで、そのあとX-Wing、Swordfishの順に進みます。最後に、仮定して進める考え方が難問までは要らない理由と、使うとき紙の上でどう印を付けて戻すかをまとめました。

## 段・列・「見える」の確認

このページでも、横に並ぶ9マスを**段**（上から1〜9段目）、縦に並ぶ9マスを**列**（左から1〜9列目）と呼びます。候補の書き方や唯一候補法・隠れ唯一候補法・ロックされた候補は[ナンプレの解き方（基本）](/guide/nanpure-tokikata/)で説明済みなので、ここでは繰り返しません。

もう1つだけ言葉を足します。2マスが同じ段・同じ列・同じ3×3ブロックのどれか1つでも共有していれば、そのマスどうしは**見える**関係にあると呼びます。同じ段にあれば見える、同じ列にあれば見える、隣どうしでなくても同じブロックの中なら見える、という意味です。この先の3つの手筋は、すべて「どのマスとどのマスが見えるか」で成り立ちます。

## 難問で止まる場面 — ペア・トリプルの先に何を見るか

ロックされた候補、ネイキッドペア・トリプル、隠れペア・トリプルまで使い切っても候補が減らなくなったら、次にすべきことは新しい手筋を闇雲に探すことではなく、**盤面の見方を切り替える**ことです。

まず、空いているマスのうち、候補がちょうど2つだけのマスを紙の上で数えてください。多くの難問はこの時点で候補2つのマスが盤面のあちこちに残っています。その1つ1つが、次の手筋の入口になります。候補が3つ以上のマスをいくら眺めても、この先の手筋は見つかりません。

次に、候補2つのマスを見るのをいったん離れて、**1つの数字を選び、その数字が各段・各列にどれだけ絞られているか**を数え直します。ある数字を選んだとき、ある段でその数字が入りうる列がわずか2つしかない、という段がいくつかあれば、そこが魚の手筋の材料になります。

この2つの見方——候補2つのマスを探す見方と、1つの数字が入りうる列を段ごとに数える見方——を切り替えられれば、この先の3つの手筋はどれも同じ盤面の中から見つかります。特別な形を暗記するより、この2つの数え方を体で覚えるほうが早く進みます。

## XY-Wing — 候補2つの3マスをつなげる

候補2つのマスが見つかったら、まずXY-Wingを疑います。3マス使う手筋です。

1つ目のマスを**軸**とします。軸の候補は2つの数字で、たとえば上から3段目・左から5列目のマスの候補が「2・7」だったとします。この軸と見える関係にある、候補2つの別のマスを2つ探します。

1つ目の相手は、軸と同じ段にある上から3段目・左から8列目のマスで、候補が「2・9」だったとします。軸と1つだけ数字を共有しており、その数字は2です。もう1つの数字9が、あとで消す対象になります。

2つ目の相手は、軸と同じ列にある上から7段目・左から5列目のマスで、候補が「7・9」だったとします。軸との共有数字は7で、もう1つの数字はやはり9です。2つの相手が共有していない側の数字が同じ9で揃ったので、この3マスはXY-Wingの形になっています。

ここから、上から7段目・左から8列目のマスに注目します。このマスは、1つ目の相手（3段目・8列目）と同じ列8を共有し、2つ目の相手（7段目・5列目）と同じ段7を共有しています。つまりこのマスは、2つの相手の両方から見える位置にあります。もしこのマスに候補9が残っていれば、消せます。

理由はこうです。軸のマスは2か7のどちらかです。軸が2なら、同じ段にある1つ目の相手は2を取れないので9で確定します。軸が7なら、同じ列にある2つ目の相手は7を取れないので9で確定します。軸が2でも7でも、1つ目の相手か2つ目の相手のどちらかが必ず9になります。7段目・8列目のマスは、その両方から見えているので、どちらの9からも同じ扱いを受け、候補9を残すことができません。

この手筋は、軸が2つの相手のそれぞれと段・列・ブロックのどれか1つを共有していればよく、2つの相手どうしが見える関係である必要はありません。むしろ2つの相手が離れた位置にあるときほど、消せるマスが盤面の意外な場所に見つかります。

実際に配布している難問ナンプレ1問目の盤面で確かめると、軸は6段2列のマス（候補5・8）です。軸と同じブロックにある4段3列のマス（候補1・5）が1つ目の相手で、軸と数字5を共有しています。軸と同じ段にある6段7列のマス（候補1・8）が2つ目の相手で、軸と数字8を共有しています。2つの相手が共有していない側の数字はどちらも1なので、この3マスはXY-Wingの形になっています。4段8列・4段9列・6段1列のマスは、2つの相手の両方から見える位置にあり、候補1が残っていれば消せます。

![難問ナンプレ1問目の盤面。軸の6段2列（候補5・8）と、相手の4段3列（候補1・5）・6段7列（候補1・8）がXY-Wingの形になり、両方から見える3マスの候補1が消えている様子を示す図。](/images/figures/g03-xy-wing.svg)

## X-Wing — 魚の手筋の入口

XY-Wingを使っても動かなくなったら、次は数字を主語にして探すX-Wingです。

ある数字――ここでは3とします――について、上から2段目で3が入りうるマスが左から1列目と6列目の2か所しかなく、上から5段目でも3が入りうるマスがやはり1列目と6列目の2か所しかなかったとします。

このとき、1列目・6列目のうち、2段目・5段目以外にあるマスからは、候補3を消せます。

理由を数え方で確かめます。3は2段目のどこかで1列目か6列目のどちらかに入り、5段目のどこかでも1列目か6列目のどちらかに入ります。組み合わせは「2段目が1列目・5段目が6列目」か「2段目が6列目・5段目が1列目」の2通りしかありません。どちらの組み合わせでも、1列目の3はこの2段のどちらかが使い切り、6列目の3も同じくこの2段のどちらかが使い切ります。1つの列に3は1つしか入らないので、1列目にも6列目にも、2段目・5段目以外の段で3が入る余地は残りません。

段と列を入れ替えても同じ理屈が成り立ちます。ある数字が2つの列でそれぞれ同じ2つの段にしか入らないときも、その2段の他の列から同じ数字を消せます。

実際に配布している難問ナンプレ2問目の盤面で確かめると、数字8は3列目でも9列目でも、入りうる場所が1段目と5段目の2か所だけに絞られています。3列目と9列目という2つの列を入れ替えても同じ組み合わせ（1段目・5段目）にしか入らないので、1段目・5段目のうち3列目・9列目以外にあるマス（この盤面では5段7列）から候補8を消せます。

![難問ナンプレ2問目の盤面。数字8が3列目・9列目でそれぞれ1段目・5段目の2か所にしか入らず、5段7列のマスから候補8が消えている様子を示す図。](/images/figures/g03-x-wing.svg)

## Swordfish — X-Wingの3本版

X-Wingの2段2列を、3段3列に広げたものがSwordfishです。**各段が3列すべてを使っている必要はありません。**

数字8について、上から2段目で8が入りうる列が1列目と4列目、5段目で8が入りうる列が4列目と9列目、8段目で8が入りうる列が1列目と9列目だったとします。1つの段だけを見ると、どの段も候補は2列にしか広がっていません。それでも3段をまとめると、8が入りうる列は1列目・4列目・9列目の3列だけに収まっています。

このとき、1列目・4列目・9列目のうち、2段目・5段目・8段目以外にあるマスからは、候補8を消せます。たとえば上から6段目の1列目や4列目に候補8が残っていれば消せます。

理由はX-Wingと同じ数え方の延長です。8はこの3段のそれぞれに必ず1つ入り、置ける場所は1列目・4列目・9列目の中に限られています。2段目は1列目か4列目、5段目は4列目か9列目、8段目は1列目か9列目のどちらかを取りますが、3段で3列を分け合う組み合わせを実際にたどると、1列目・4列目・9列目はこの3段のどれかに必ず割り当たり、余る列も余る段も出ません。結果としてこの3列の8は、この3段の中で使い切られてしまい、他の段には残りません。

## 探す順番 — XY-Wingから魚の手筋へ

難問で行き詰まったときは、次の順で探すと無駄がありません。

**1. XY-Wing。** 候補2つのマスを1つ見つけるだけで探し始められるので、盤面のどこからでも着手できます。見える関係にある候補2つのマスの組を、盤面を1周しながら探します。

**2. X-Wing。** XY-Wingで動かなくなったら、1つの数字を選び、各段でその数字が入りうる列を数えます。2つの段で列がそろって2つに絞られていれば見つかります。

**3. Swordfish。** X-Wingでも動かなくなったら、同じ数え方を3段に広げます。3段のうち候補の列が2つか3つに収まっている段を探し、合わせて3列に収まる組み合わせを探します。

この順にしているのは、XY-Wingが候補2つのマス1組だけで成立し、盤面のどこにあっても見つけやすい一方、X-WingとSwordfishは段や列を横断して数え直す手間が要るからです。手数の少ない探し方から先に試し、それで動かなくなったら手数のかかる探し方に移る、という順番です。ロックされた候補やペア・トリプルで削り切ってからこの3つに進むと、候補の数え間違いも減ります。

## 仮定法をいつ使うか — 難問までは要らない理由

難問までの盤面は、唯一候補法からSwordfishまでの手筋を積み上げれば、仮定せずに最後まで解けるように作っています。手筋の階梯のいちばん上にXY-Wing・X-Wing・Swordfishを置き、そこまでで解ける盤面だけを難問として選んでいるので、途中で手が止まって当てずっぽうに頼る必要はありません。

[超難問](/nanpure/chonanmon/)は違います。あちらは、実装している手筋を全部当てても、それ以上どのマスも動かなくなった盤面をそのまま集めています。手筋の階梯の外側にある盤面なので、候補のつながりを長くたどるか、仮定して進めるやり方が要ります。

仮定は**最後の手段**です。唯一候補法からSwordfishまでで埋まるマスを残したまま仮定に入ると、戻る手間だけが増えます。紙の上で仮定するときは、いつもの候補の書き込みと混ざらないよう、印を分けてください。候補が2つのマスを1つ選び、一方の数字を薄い字か色を変えた鉛筆で書き込み、そこから先の書き込みもすべて同じ薄い字・同じ色で続けます。段・列・ブロックのどれかで数字が重なる、あるマスの候補が0になる、といった矛盾が出たら、その薄い字・その色の書き込みだけを消しゴムで消し、仮定する前の候補の状態に戻して、もう一方の数字で同じことをやり直します。仮定に入る前の候補を欄外に控えておくと、戻す作業がそのぶん速くなります。

XY-Wing・X-Wing・Swordfishの3つを紙の上で使いこなせれば、難問の50枚は仮定せずに最後まで届きます。その先の超難問は、当サイトの手筋では最後まで解けない盤面なので、つながりをたどるか仮定を使うことになります。

この記事のXY-Wing・X-Wing・Swordfishが、解いていく順の手のなかでいちばん多く出てくるのは、[ナンプレ難問のヒントの紙](https://puzzle-print.jp/nanpure/nanmon/#hints)です（50問で69行）。

## 使ってよい範囲

個人・学校・介護施設等での複製配布可／再配布・販売・改変配布は不可

くわしくは [利用規約](https://puzzle-print.jp/license/) をご覧ください。

---

ぷりんと工房  https://puzzle-print.jp/guide/nanpure-tokikata-nanmon/
