X-wing・Swordfish・Jellyfish 徹底解説:魚系テクニックは「なぜ消せるのか」から理解する
公開: 2026/08/04
X-wing を「4つの角がこの形に並んだら消せる」というパターン暗記で覚えている人は少なくありません。それでも解けますが、暗記型の理解には限界があります。Swordfish で行数が3に増えた瞬間に応用が利かなくなり、候補が2個ずつ揃わない変形パターンを「X-wing ではない」と誤って見逃してしまうのです。
魚系(Fish)テクニックの本質は、形ではなく数えの論理にあります。ここを一度きちんと通過すれば、X-wing・Swordfish・Jellyfish は同じ定理の n=2, 3, 4 の場合にすぎないと分かります。
なお、X-wing の形そのものにまだ馴染みがない方は、盤面図を使ったX-Wingテクニック入門を先に読むと、この記事の議論が追いやすくなります。上級テクニック全体の見取り図は数独の高度なテクニックまとめにあります。
X-wing:2行が2列を「使い切る」
ある数字、たとえば 6 に注目します。行2と行7を調べたところ、それぞれの行で 6 の候補がちょうど2マスずつ、しかも同じ2列(列3と列8)にしか残っていなかったとします。
候補6の分布(Xが候補、–は候補なし)
c1 c2 c3 c4 c5 c6 c7 c8 c9
r2 – – X – – – – X –
...
r7 – – X – – – – X –
ここで場合分けをします。行2の 6 は r2c3 か r2c8 のどちらかです。
- r2c3 に 6 が入る場合:列3が使われたので、行7の 6 は r7c3 に入れず、r7c8 に確定する。
- r2c8 に 6 が入る場合:同様に行7の 6 は r7c3 に確定する。
どちらの場合でも、列3と列8には、行2と行7のどちらかのマスで必ず 6 が1個ずつ置かれます。列に同じ数字は2個入れられないのですから、結論は次のとおり。
列3と列8の、行2・行7 以外のマスから候補6をすべて消してよい。
これが X-wing です。対角に結んだ線がXの形になることが名前の由来ですが、本質は「2本の行が、6の置き場所として2本の列を完全に予約してしまった」という被覆(カバー)の関係です。
図:本文の例をそのまま盤面にしたもの。緑=行2・行7で候補6が残る4マス、赤い破線=X-wing の対角線、赤=列3・列8で削除できる候補6
別の数字・別の位置でも形はまったく同じです。数字3が行4と行7で列2・列4の2マスずつに絞られた場合も、同じ論理で列2・列4の他のマスから候補3を消せます。
図:数字3の X-wing。候補マスは (4,2)・(4,4)・(7,2)・(7,4) の4つで、列2・列4の赤いマスから候補3を削除できます
一般化:n 本の行と n 本の列
上の議論を数だけ抽象化すると、魚系の一般定理になります。
ある数字の候補が、n 本の行の中で合計 n 本の列の上にしか存在しないとき、その n 本の列の(n 本の行以外の)マスからその数字の候補を消せる。
理由も同じ数えの論理です。n 本の行にはその数字が1個ずつ、計 n 個入ります。その n 個の置き場所はすべて n 本の列のどれかの上です。列1本には同じ数字が1個しか入らないので、n 個の数字が n 本の列をちょうど1個ずつ使い切ることになり、列側に他の出番は残りません。
- n = 2 が X-wing
- n = 3 が Swordfish(ソードフィッシュ)
- n = 4 が Jellyfish(ジェリーフィッシュ)
行と列の役割を入れ替えた「列基準→行を消す」形も、まったく同じ論理で成立します。
Swordfish の重要な注意:各行に候補3個は不要
Swordfish でつまずく最大のポイントがここです。条件は「3本の行の候補が、合わせて3列に収まる」ことであって、各行に候補が3個ずつある必要はありません。次の分布は正真正銘の Swordfish です。
候補4の分布(行1・行5・行9、列2・列5・列7)
c2 c5 c7
r1 X X –
r5 – X X
r9 X – X
各行の候補は2個ずつしかありませんが、3行分の候補がすべて {c2, c5, c7} の中にあります。よって列2・列5・列7の他のマスから 4 を消せます。
図:上の分布を盤面にした 2-2-2 型 Swordfish。緑=行1・行5・行9で候補4が残る6マス、赤=列2・列5・列7で削除できる候補4
実際、実戦に現れる Swordfish の大半はこのような「2-2-2」や「2-3-2」の歯抜け型で、教科書どおりの「3-3-3」はむしろ稀です。「候補は n 個以下、列の合計がちょうど n 本」と覚えてください。
Jellyfish まで必要か
n=4 の Jellyfish も論理は同一ですが、実戦での登場頻度は大きく下がります。理由は数学的で、9行を n 本と残り 9−n 本に分けると、行側に Jellyfish があるとき列側には自動的に補集合の魚(サイズ 9−4−(確定済み) 相当)が存在し、多くの場合より小さい魚で同じ消去が得られるからです。まずは X-wing と Swordfish を確実に拾えることを優先しましょう。
実戦での探し方
魚系は「見つけよう」として盤面全体を眺めても見つかりません。効率的な手順は次のとおりです。
- 数字を1つ固定する。 魚系は常に単一の数字の話です。盤面に6個以上確定している数字は残りマスが少なく魚が出やすい、逆に確定が少なすぎる数字は候補が散らばりすぎて非効率、という目安があります。
- 各行について、その数字の候補が2〜3マスしかない行をリストアップする。 ここが下ごしらえです。候補4個以上の行は(Jellyfish を狙わない限り)無視して構いません。
- リストアップした行の候補列を突き合わせる。 2行で列の和集合が2本なら X-wing、3行で3本なら Swordfish です。
- 見つからなければ行と列を入れ替えて再走査します。
この手順が機能する前提は、盤面の候補が十分に絞られていることです。ロックされた候補などの基本消去を先に出し尽くしていないと、候補2〜3マスの行がそもそも現れません。魚系は上級テクニックの中では「終盤前の中締め」に位置します。
魚系はロックされた候補の親戚である
ここまで来ると、ひとつ気づくことがあります。中級の必須手筋である「ロックされた候補(Pointing/Claiming)」も、実は同じ被覆の論理でした。「ブロック1本の中で候補が行1本に収まる→行の他の部分を消す」——これは基底集合1本・被覆集合1本の最小の魚(n=1)とみなせるのです。X-wing はその2本版、Swordfish は3本版にすぎません。
この見方には実利があります。テクニックを「別々の呪文」として暗記していると、問題ごとにどの呪文を試すか迷いますが、「候補の存在範囲を少数のユニットで被覆し、被覆側の余りを消す」という単一原理として理解していれば、走査は常に同じ問いになります。「この数字の居場所は、いま何本の線で囲い込めるか?」——ロックされた候補で1本、X-wing で2本、Swordfish で3本。囲い込みに必要な本数が、そのままその局面の難しさです。
なお、消去を実行する前のセルフチェックも共通です。基底側(行なら行)の候補が本当に被覆側の列だけに収まっているか、1マスでも例外がないかを指差し確認すること。例外が1マスだけある場合、それは誤りではなく Finned Fish という別の(正しい)手筋の入口ですが、消去できる範囲が大きく狭まるため、通常の魚と混同すると解を壊します。
練習法:意図的に魚を探す環境を作る
X-wing は上級の後半から、Swordfish はエキスパート・鬼級で実用頻度が上がります。おすすめの練習は、毎日の20問のうち上級以上を解く際に、行き詰まっていなくても各数字の候補分布を一巡チェックする習慣をつけることです。魚は行き詰まる前から盤面に潜んでいます。「詰まってから探す」のではなく「あるものとして走査する」姿勢が発見速度を決めます。
また、解き終えた問題やアーカイブの過去問をソルバーで検証し、自分が別ルートで回避した局面に魚が隠れていなかったかを確認するのも効果的です。同じ問題に複数の解き筋があると知ることは、パターン暗記から論理理解へ移行する何よりの近道になります。
魚系テクニックを数えの論理として理解できたなら、その先にある Finned Fish(ヒレ付きの魚)や Franken Fish といった発展形も、「例外処理を1か所加えるだけ」の自然な拡張として受け入れられるはずです。まずは今日の1問から、6か7あたりの数字で行の候補を数えてみてください。