ナンプレのルール
・9×9のマスに1~9の数字を入れる
・3×3のブロックで区切られている
・行、列、ブロック内で同じ数字が入ってはいけない
・解は一つ
タイトルにもある「BoxLine」「PointingPair」とは、ナンプレの解き方の一つです。
関連リンク
【ナンプレ】Naked(N国同盟)とHidden(隠れN国同盟)は同じ
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
A | 6 | 3 | 4,8,9 | 2 | |||||
B | 5 | 7 | 3 | 1,2,8,9 | 1,2,8,9 | 1,2,8,9 | 8,9 | 6 | 4 |
C | 5 | 7 | 4,8,9 | ||||||
D | 1 |
例えば、上の盤面を見てください。
同じ行、同じ列、同じブロックの数字は入らないので、B7には8,9のどちらかが入ります。
そして、B4,B5,B6のいずれかに1,2が入ります。
すると、同じブロックであるA6,C6に1,2は入らなくなります。
これがBoxLineです。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
A | 6 | 3 | 2 | ||||||
B | 5 | 7 | 3 | 6 | 4 | ||||
C | (2) | (2) | (2) | 5 | 7 | 1,4,8,9 |
例えば、上の盤面を見てください。
A8に2が埋まっています。
すると、同じ行であるA1,A2,A3に2は入らず、C1,C2,C3のいずれかに2が入ることがわかります。
そして、C行ではC1,C2,C3以外には2が入らず、C6に2は入らなくなります。
これがPointingPairです。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
A | 6 | 3 | 8 | 2 | 1 | ||||
B | 5 | 7 | 3 | 6 | 4 | ||||
C | (1,2,8) | (1,2,8) | (1,2,8) | 4,5,7,9 | 4,5,7,9 | 4,5,7,9 |
上記のように3つの数字に対して適用できる場合もあります。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
A | (1) | (1) | (1) | 6 | 3 | 4,8,9 | 2 | (1) | |
B | 5 | 7 | 3 | 1,2,8,9 | 1,2,8,9 | 1,2,8,9 | 8,9 | 6 | 4 |
C | (12) | (12) | (12) | 5 | 7 | 4,8,9 | (1) | (1) | |
D | 1 |
上記の1のように、2つの行(列)に対して適用できる場合もあります。
もしA6に1が入った場合、A1,A2,A3,A9に1が入ることができず、C行に1が2つ存在することになり矛盾します。
よって、A6に1は入りません。
C6についても同様です。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|
A | 6 | 3 | 4,8,9 | 2 | |||||
B | 5 | 7 | 3 | 1,2,8,9 | 1,2,8,9 | 1,2,8,9 | 8,9 | 6 | 4 |
C | 5 | 7 | 4,8,9 | ||||||
D | 1 |
上記はB4,B5,B6のBoxLineで捉えてもよいですし、
C1,C2,C3のいずれかが2であるPointingPairと
A行ではA1,A2,A3,A9のいずれか、C行ではC1,C2,C3,C8,C9のいずれかが1であるPointingPairの組み合わせとして捉えてもよいです。
ある数が縦(横)3マスのいずれかに含まれ、そのブロック外の同じ列(行)にはその数が含まれないブロックが存在する
例えば、
は、ブロック
あるボックス内で、ある数が縦(横)3マスに含まれないとき、その列(行)と同じ列(行)3マスにその数が含まれないボックスが存在する
または
例えば、
方針
BoxLineが成立している時は、他のブロックでPointingPairが成立し、PointingPairが成立している時は、他のブロックでBoxLineが成立していることを示す。
BoxLine
これはPointingPairの定義である
列の場合も同様
PointingPair
これはBoxLineの定義である
列の場合も同様