スワードフィッシュ 数独 - X-Wing を 3 列に拡張した除外パターン
スワードフィッシュ (Swordfish) は X-Wing を 3 行 × 3 列に拡張した魚系テクニックの 1 つである。特定の数字の候補が 3 行に限られた状態で、その候補が現れる列が 3 列に収まる場合、それらの列の他の行から候補を除外できる。Expert 以上のパズルを攻略する強力な武器となる。
スワードフィッシュの定義
スワードフィッシュは特定の数字 (例: 5) について次の条件が成立するパターンである。3 つの行が選ばれ、各行で 5 の候補が 2-3 マスに限定されている。さらに、それらの候補マスの列が全体で 3 列に収まっている。この状況下では「3 つの行 × 3 つの列」の交差点 9 マスのいずれかに 5 が必ず 3 つ配置されることになる。よって、選んだ 3 列の他の行 (3 行以外の行) からは 5 を除外できる。X-Wing が 2 行 × 2 列の矩形パターンであるのに対し、スワードフィッシュは 3 行 × 3 列に拡張した魚系 (Fish) テクニックの第二段階である。
なぜ除外できるのか
論理を厳密に追うと次のようになる。3 つの行はそれぞれ 5 を 1 つだけ含む (数独のルール上、各行に同じ数字は 1 つだけ)。各行の 5 は選んだ 3 列のいずれかに位置する。3 行で合計 3 つの 5 が、3 列に分散して配置されることになる。鳩の巣原理により、各列にちょうど 1 つの 5 が入る配置になる。つまり選んだ 3 列の 5 は、選んだ 3 行のいずれかで全て埋まる。結果として、選んだ 3 列の他の行に 5 を入れる余地がなくなり、それらのマスから候補 5 を除外できる。X-Wing と同じ原理を 3 次元に拡張した形である。
行ベースと列ベースの 2 種類
スワードフィッシュには行ベースと列ベースの 2 種類が存在する。行ベース (Row Swordfish) は前述のように 3 行を起点に 3 列で除外を行う。列ベース (Column Swordfish) はその逆で、3 列を起点に各列で 5 が 2-3 マスに限定され、それらが 3 行に収まる場合に、選んだ 3 行の他の列から 5 を除外する。論理は対称的だが、実際のパズルでは盤面の状況により発見しやすい方向が異なる。両方を交互にスキャンする習慣をつけると見落としが減る。なお、各行 (列) で候補が完全に 2 マスである必要はなく、3 マスでもよい。重要なのは「3 行 (列) 全体でちょうど 3 つの列 (行) に収まる」点である。
実践的な走査手順
スワードフィッシュの走査は以下の手順で行う。手順 1: 1 から 9 まで各数字について順番に検討する。手順 2: その数字が 3-5 個程度しか配置されていない数字を優先する (候補が多すぎず少なすぎない数字)。手順 3: 各行でその数字の候補位置を列番号で記録する。例: 行 2 で {3, 7}、行 5 で {3, 5}、行 8 で {5, 7}。手順 4: 3 行を選び、その候補列の合計が 3 列以内に収まる組み合わせを探す。上の例では行 2, 5, 8 の候補列の合計が {3, 5, 7} で 3 列に収まる。手順 5: 該当する 3 列の他の行 (行 1, 3, 4, 6, 7, 9) から対象数字を除外する。慣れると盤面の数字配置を見て候補をパターンとして認識できるようになる。
魚系テクニックの拡張階層
スワードフィッシュは魚系テクニックの階層構造の中間に位置する。最小は X-Wing (2 行 × 2 列)、次がスワードフィッシュ (3 行 × 3 列)、その上に Jellyfish (4 行 × 4 列) が存在する。Jellyfish 以上は実用上ほぼ出現しないが、論理構造は同じである。一般に「N-Fish」は N 行 × N 列で、各行の候補位置が N 列以内に収まる場合に成立する。N が大きいほど発見は困難になる。Master/Extreme 難易度のパズルでは、スワードフィッシュが解法の決定打となるケースが少なくない。発見は他の <a href="/ja/articles/sudoku-coloring-technique/">カラーリング</a> や <a href="/ja/articles/xy-wing-technique/">XY-Wing</a> よりも体系的に走査しやすいため、Expert を安定して解けるようになったら次に習得すべき優先テクニックである。
X-Wing からの自然な発展
スワードフィッシュは、X-Wing を理解していれば自然に手が届くテクニックだ。X-Wing が二行二列に閉じた構造なら、スワードフィッシュはそれを三行三列に広げたものにすぎない。論理の核は同じで、ある数字が限られた行に現れ、その列が一定数に収まるなら、余った場所から候補を消せる、という鳩の巣原理である。違いは扱う行と列が一つ増えることだけだ。したがって、X-Wing を安定して見つけられるようになったら、次に習得すべきは自然とスワードフィッシュになる。複雑そうに見えても、X-Wing の発想を一段階広げるだけだと捉えると、心理的な壁が下がる。
発見を支える記録の工夫
スワードフィッシュを実際に見つけるのは、頭の中だけでは難しい。各行で対象数字の候補がどの列にあるかを、列番号として書き出す工夫が有効だ。たとえば、ある数字について各行の候補列を一覧にし、三つの行を選んでその候補列の合計がちょうど三列に収まる組み合わせを探す。この作業は、メモが正確であることを前提とする。候補の書き漏れがあれば、成立しているスワードフィッシュを見逃し、消し忘れがあれば成立していないものを誤認する。行ベースと列ベースの両方向を交互に確かめる習慣をつけると、発見の取りこぼしが大きく減る。