はじめに
ナンプレ(数独)を上級レベルへ進むと、パズルの中に潜んでいる隠し手法に目を向ける必要があります。
その中でも代表的で強力なのが 「ソードフィッシュ(Swordfish)」 です。
初級者にとっては「セルの候補を消す」方法が多く、思考は比較的直感的です。しかし、ソードフィッシュは
「行列の交差構造」に着目し数千種の候補を一瞬で排除できるため、解答速度が大幅に向上します。
今回の記事では、
- ソードフィッシュの基礎概念
- 具体的な見つけ方と手順
- 実戦での活用ポイント
という三つのテーマに絞り、初心者でもわかりやすいように丁寧に解説します。
ソードフィッシュとは?
基本的な特徴
- 構成要素: 3 行(または 3 列)と 3 列(または 3 行)を対象にします。
- 重複候補数: ある数字(1–9)が対象の 3 列(or 3 行)内に ちょうど 3 つの候補しかない場合に発動します。
-
結果: その数字は、他の列(または行)に現れる同じ 3 つのセルに限定されるため、
その列(行)の残りのセルからその数字を消すことができます。
名前の由来
アメリカのポータルサイエンス(Portal Science)で「Swordfish(ソードフィッシュ)」という名で発表されたことから名付けられました。
実際に魚のように「鋭い刃」で相手を切断するイメージを持っていただければ、覚えやすいでしょう。
見つけ方ステップバイステップ
1. まずは候補を振る
- 解く対象のボードで、まだ不確定なセルに対して「候補数」を書き込みます。
- もし 数字 5 の候補が 4 行(例: 2 行, 5 行, 6 行)にのみ現れるなら、次の手順へ進む準備ができました。
2. 行(または列)を選択
- 3 行(または 3 列)をピックアップします。例では「行2, 行5, 行6」について検証します。
- これらの行に その数字(5) が出る 候補セル が3つに限定されるかを確認します。
例
行2: 5 _ _ 9 _ 4 1 _ _
行5: _ 5 _ _ 5 _ _ _ _
行6: _ _ 5 _ _ 7 _ 5 _
- 行2: 5 が 1 列目(3列目)
- 行5: 5 が 3列目(5列目)
- 行6: 5 が 7列目(9列目)
ここで 3 行中、5 はちょうど 3 つの候補しかないと確認できる(実際には 5 列に集まっています)。
3. 列を確認
- 上記で 5 が出ている列(3 列, 5 列, 9 列)を対象に、それぞれの列に 5 が出るセル が全て 3 つに限定されるかチェックします。
- もし列 3 に 5 が 3 セル、列 5 に 5 が 3 セル、列 9 に 5 が 3 セルであれば「ソードフィッシュ」成立です。
4. 候補を削除
- 確定した 3 列(または 3 行)以外の列(行)に、5 が入る候補セル があれば削除します。
- これで、列 3, 5, 9(あるいは行2, 5, 6)以外のすべてのセルから 5 が消え、パズル解答の範囲が狭まります。
具体例で確認
以下は、実際の 9×9 ボードを使った最小限の説明です。
(※一部セルへ候補数を埋め込んでいます)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 5,3 | 0 | 0 | 0 | 8 | 0 | 0 |
| 2 | 5,6 | 0 | 0 | 9 | 1 | 4 | 0 | 0 | 0 |
| 3 | 0 | 1 | 9 | 5,6 | 0 | 7 | 0 | 0 | 5,6 |
| 4 | 0 | 6 | 4 | 0 | 0 | 2 | 1 | 0 | 0 |
| 5 | 0 | 0 | 0 | 5 | 5,6 | 0 | 0 | 0 | 0 |
| 6 | 0 | 5 | 0 | 0 | 0 | 7 | 0 | 5,6 | 0 |
| 7 | 1 | 2 | 3 | 4 | 0 | 5 | 6 | 7 | 8 |
| 8 | 9 | 0 | 0 | 6 | 0 | 0 | 0 | 4 | 1 |
| 9 | 0 | 0 | 5 | 0 | 0 | 0 | 5,6 | 0 | 0 |
- 数字 5 を対象に、行2, 行5, 行6 が候補セルに限定されます。
- それぞれが 3 列(3, 5, 6) で集まっています。
- 列 3, 列 5, 列 6 の すべての 5 が ちょうど 3 つ で、ソードフィッシュ成立。
- 従って、列 3, 列 5, 列 6 以外の列(1, 2, 4, 7, 8, 9)から 5 を削除します。
この操作で、候補が急激に減少し、ほかのテクニックと組み合わせても解決がスムーズになります。
ソードフィッシュの戦略的活用ポイント
1. 先に見つける
- 候補を振った直後に、行/列で候補数が 3 つになるパターンを探すと、他の長いパズルを消す機会が増えます。
- ただし、ソードフィッシュは3 行または 3 列を対象にするので、「3」の候補が多いほど有効。
行や列に候補が 2 つ程度しかない場合は、他のテクニック(X-wing, 交差消去)を先に行ったほうが自然です。
2. 他のテクニックとの併用
| テクニック | 特徴 | 併用時の注意点 |
|---|---|---|
| X-wing | 2 行/列で 2 探し、消去 | 3 行のソードフィッシュより 限定的 |
| 交差消去 | 同じブロック内で消す | ブロックが重なる場合、ソッドフィッシュで大消去後に再度確認 |
| いくつかの同様テクニック | 進階では トライホフス | 3×3 ブロックのパターンに合わせて調整 |
ソードフィッシュを発見したら、直ちに消去し、結果として残る候補列や行を再評価します。
この繰り返しが、解答への道を大幅にスムーズにします。
よくある間違いと対策
| 誤解 | 原因 | 正しいアプローチ |
|---|---|---|
| 「5の候補が 3 つになる列=自動でソッドフィッシュ」 | 列が 3 つの行に限定されていない | 行 3 つを確認し、候補セルが 3 つであるかを必ず検証 |
| 「ソッドフィッシュは 3×3 ブロックでのみ使える」 | 行/列の組み合わせを忘れた | ブロックは参照だけ、ソッドフィッシュは行・列の集合で判定 |
| 「数字を消す際、ブロックを必ず一緒に削除」 | 消去対象が限定すべき列/行と混同 | 必ず 消去対象外列 のセルを見直す(ブロック全体ではなく) |
| 「見つけても使わない」 | 手順が長く感じた | 消去前に候補数が減るだけで、後続操作が楽になることを再確認 |
実戦演習:簡易ソッドフィッシュワークショップ
以下の2つのパズルに挑戦してみましょう。
各題の回答は最後にまとめていますので、まずは自分で探してみてください。
問題 A
行1: 0 0 0 6 0 0 0 1 0
行2: 0 0 0 0 0 0 0 0 0
行3: 0 0 3 0 4 5 0 0 7
行4: 0 6 1 0 0 3 0 0 0
行5: 0 0 0 8 0 0 3 0 0
行6: 0 0 0 0 7 0 0 0 0
行7: 4 0 0 0 8 2 0 0 6
行8: 0 0 9 1 0 6 5 2 0
行9: 0 0 0 4 0 0 0 0 9
手順
- すべてのセルに候補数を振る。
- 数字 3 を対象に、行2,1,9 で候補が 3 つに限定されるか確認。
- 列 8 の候補も調査。
問題 B
行1: 2 0 0 9 6 1 0 0 5
行2: 0 6 0 0 7 0 2 0 3
行3: 0 0 1 2 0 5 0 0 0
行4: 5 2 0 0 0 7 0 0 0
行5: 0 0 9 0 2 4 0 0 7
行6: 3 0 0 0 9 6 8 0 2
行7: 0 9 4 1 0 8 0 3 0
行8: 0 0 0 0 4 2 9 5 0
行9: 1 0 0 7 3 0 6 0 0
ポイント
- 数字 9 を目安に、行 3, 5, 7 を比較。
- 列 5 の候補を特定。
まとめと次のステップ
- ソーダフィッシュ は「3 行/3 列」の組み合わせで、候補数が 3 つに限定される場合に発動できる非常に強力なテクニックです。
- 初心者は 候補振り から始め、行/列のパターンを見逃さない ことが鍵。
- ソッドフィッシュを見つけるごとに、他の行列の候補を再評価すれば、ボードは急速に簡潔に変わります。
次に挑戦したいテクニック
- X-wing – 2 行 2 列で同じ数字を消す。
- Jellyfish – 4 行/4 列で拡張版。
- ルーノ(ループ) – パズル全体を利用した高階の論理。
これらを順にマスターすれば、数独はレベルアップバリューが飛躍的に上がります。
さあ、今こそソッドフィッシュを使って、さらに解ける数独の世界へ飛び込みましょう!

コメント