数独スカイスクレイパーテクニック詳解:強連鎖を利用した高度な除外法
スカイスクレイパー(Skyscraper)は、数独の上級テクニックの一つで、強連鎖に基づいた除外方法であり、X-Wingの変形と見なすことができます。その名前は、このテクニックが形成する図形に由来しています。2本の垂直な「柱」が1本の「横梁」で接続され、高さの異なる2つの高層ビルのように見えます。その核心的な考え方は次のとおりです:ある候補数が2つの行でそれぞれ強連鎖を形成し、これら2つの強連鎖が同じ列で接続されている場合、2つの「遊離」端点から同時に見える格子からその候補数を除外できます。
ある候補数が1つの行(または1つの列)に2つの格子にのみ現れる場合、これら2つの格子の間に強連鎖(Strong Link)が形成されます。強連鎖は次のことを意味します:これら2つの格子のうち必ず1つだけがその数字で埋められます。一方がそうでなければ、もう一方が必ずそうなります。
スカイスクレイパーのルール
もしある候補数が2つの行でそれぞれ2つの位置にのみ現れ(2つの強連鎖を形成)、これら2つの強連鎖が同じ列上に1つの端点を持つ場合、
ならば同じ列上にない2つの端点(遊離端点)から同時に「見える」格子から、その候補数を除外できます。
本文を読む前に、X-Wingテクニックを習得することをお勧めします。スカイスクレイパーはX-Wingの「不完全な」形式と見なすことができます。X-Wingの4つの角のうち3つが揃っている場合にスカイスクレイパーが形成されます。
実例分析:行ベースのスカイスクレイパー
スカイスクレイパーの例を見てみましょう。第1行と第5行の候補数 6 が関わっています。
現在の盤面データ
CSV81形式の候補数データに基づき、第1行と第5行における候補数6の分布に注目します:
第1行の各格子:
- R1C1:候補数 {4, 6}
- R1C2:既定数字 7(与えられた値)
- R1C3:候補数 {1, 4}
- R1C4:既定数字 5
- R1C5:既定数字 8
- R1C6:候補数 {1, 6}
- R1C7:既定数字 9(与えられた値)
- R1C8:既定数字 3(与えられた値)
- R1C9:既定数字 2
第5行の各格子:
- R5C1:既定数字 1(与えられた値)
- R5C2:候補数 {3, 6}
- R5C3:既定数字 7
- R5C4:既定数字 8
- R5C5:既定数字 4
- R5C6:候補数 {2, 6}
- R5C7:候補数 {2, 5}
- R5C8:既定数字 9(与えられた値)
- R5C9:候補数 {3, 5}
分析プロセス
- 屋根(接続点):R1C6 と R5C6(第6列上、破線で接続)
- 遊離端点(ビルの頂上):R1C1 と R5C2(2つの「ビル」の頂点)
これにより、非対称な「スカイスクレイパー」形状が形成されます:左側のビルはR1C1からR1C6まで延び、右側のビルはR5C2からR5C6まで延びています。
- 第1行の6は、R1C1かR1C6のいずれかにあります
- 第5行の6は、R5C2かR5C6のいずれかにあります
- ケース1:もしR1C6が6なら、R5C6は6ではありません(同じ列)、したがってR5C2は必ず6です
- ケース2:もしR1C6が6でないなら、R1C1は必ず6です
結論:どちらのケースでも、R1C1またはR5C2の少なくとも1つは6です。
R1C1とR5C2の両方から見える格子はどれでしょうか?
- R2C2:候補数 {3, 5, 6}
→ R5C2と同じ列(第2列)
→ R1C1と同じブロック(第1ブロック) - R4C1:候補数 {4, 6, 9}
→ R1C1と同じ列(第1列)
→ R5C2と同じブロック(第4ブロック)
- R2C2:候補数 6 を削除(3,5を保持)
- R4C1:候補数 6 を削除(4,9を保持)
スカイスクレイパー:数字 6 が第1行(R1C1-R1C6)と第5行(R5C2-R5C6)で2つの強連鎖を形成し、第6列で接続されています。
操作:R2C2 と R4C1 から候補数 6 を削除します。
スカイスクレイパーの形態
スカイスクレイパーには、強連鎖の方向と接続方法に応じて、さまざまな形態があります:
1. 行ベースのスカイスクレイパー(Row-based Skyscraper)
上記の例の状況です:
- 基本構造:2つの行がそれぞれ強連鎖を持つ
- 接続方法:2つの強連鎖が同じ列上に共通の端点を持つ
- 遊離端点:共通の列上にない2つの端点
2. 列ベースのスカイスクレイパー(Column-based Skyscraper)
形式は逆ですが、原理は同じです:
- 基本構造:2つの列がそれぞれ強連鎖を持つ
- 接続方法:2つの強連鎖が同じ行上に共通の端点を持つ
- 遊離端点:共通の行上にない2つの端点
2つの高層ビルを想像してください:
• 屋根が同じ「通り」(共通の行または列)で接続されている
• ビルの頂上が遊離端点
• 2つの頂上から同時に見える場所が、除外できる位置です
スカイスクレイパーの見つけ方
スカイスクレイパーを見つけるには、体系的な観察が必要です:
- 強連鎖は、候補数がその行(または列)にちょうど2回現れることが必要です
- 2つの強連鎖は同じ列(または同じ行)で接続されている必要があります
- 「同時に見える」には、同じ行、同じ列、同じブロックの3つの状況が含まれます
- 2つの遊離端点に共通して見える格子がない場合、除外を実行できません
- スカイスクレイパーはX-Wingの「不完全な」変形です。X-Wingの4つの角のうち3つが揃っている場合、スカイスクレイパーが形成される可能性があります
スカイスクレイパーと他のテクニックとの関係
スカイスクレイパー vs X-Wing
どちらも2つの行(または2つの列)の強連鎖を含みますが、重要な違いがあります:
| 比較項目 | X-Wing | スカイスクレイパー |
|---|---|---|
| 構造 | 4つの角が完全に揃い、長方形を形成 | 3つの点のみが揃い、1つの端点が「遊離」 |
| 除外範囲 | 列(または行)全体の候補数 | 特定の格子の候補数のみ |
| 出現頻度 | 比較的少ない | 比較的多い(条件がより緩い) |
スカイスクレイパー vs 二重強連鎖
スカイスクレイパーは実際には二重強連鎖(2-String Kite)の特殊な形式です:
- 2つの強連鎖が共通点で接続されている
- 「両端のうち少なくとも1つが真」というロジックを利用して除外を行う
テクニックのまとめ
スカイスクレイパーテクニックの適用ポイント:
- 識別条件:ある候補数が2つの行(または2つの列)でそれぞれ2回だけ現れ、1つの列(または1つの行)が2つの強連鎖の端点を同時に含む
- 形成構造:2つの強連鎖 + 1つの共通列(または行)+ 2つの遊離端点
- 除外ルール:2つの遊離端点から同時に「見える」格子からその候補数を除外できます
- 適用シーン:X-Wingの条件が満たされない場合の代替案
- 識別難易度:中上級、強連鎖の概念を理解する必要があります
スカイスクレイパーは実戦ではX-Wingよりも一般的です。条件がより緩いためです。アドバイス:
- まず強連鎖の識別を習得する
- X-Wingを探している際に4つの角が完全でない場合、スカイスクレイパーを形成できるか確認する
- 候補数が少ない数字に注目すると、強連鎖を見つけやすくなります
- 候補数ハイライト機能を使用し、一度に1つの数字のみに焦点を当てる
すぐに練習
難しいまたはエキスパート級の数独ゲームを始めて、スカイスクレイパーテクニックを使ってみましょう!アドバイス:
- 難しい難易度を選択してください。簡単な問題には通常、上級テクニックは必要ありません
- まずすべての候補数をマークし、その後各数字の強連鎖を探します
- 2つの強連鎖を見つけたら、それらに共通の行または列があるか確認します
- 遊離端点を確認した後、それらが共通して見える格子を探します