数独のClaiming:行と列を使ってブロックを絞り込む

数独のClaimingテクニックを学びましょう。行または列を使って、ブロック内の候補を消去する方法を解説します。

はじめに

Claimingは、行・列・ブロックの関係を扱う数独の中級テクニックです。

Pointingとよく似ていますが、考え方は逆方向から始まります。ブロックからラインへではなく、ラインからブロックへ向かいます。Claimingでは行または列を見て、ある数字が特定のブロック内にしか入れないことに気づきます。その時点で、その数字はその行または列によってブロック内で「確保」され、ブロックの他のマスから消去できます。

このテクニックは候補を減らし、新しい解き筋を作るのに役立ちます。

このガイドでは、Claimingとは何か、どう見つけるか、そしてPointingとの見分け方を見ていきます。

Claimingテクニックとは

Claimingは、ある行または列で、特定の数字が同じブロックに属するマスにしか入れないときに成立します。

その数字は行または列に必ず現れる必要があり、入れる場所がそのブロック内にしかないため、その数字はそのライン上のそのブロック内に必ず入ります。

そのため、その行または列に属していない同じブロック内の他のマスから、その数字を消去できます。

まるで、その行または列がブロック内でその数字を「主張」しているような状態です。

行とブロックの関係

最も直感的なのは、行とブロックの関係です。

数字6が2つのマスにしか入れない行を想像してください。その2マスはどちらも同じ3×3ブロック内にあります。

その行には6が必要なので、6は必ずその2マスのどちらかに入ります。そしてその2マスは同じブロックに属しているため、そのブロックの6は必ずその行に入ります。

そのため、同じブロック内でその行の外にある他のマスから、候補6を消去できます。

列とブロックの関係

Claimingは列から始まることもあります。

ある列で、特定の数字が同じブロックに属するマスにしか入れないなら、その数字は必ずその列上のそのブロック内に入ります。

この時点で、同じ列にないブロック内の他のマスから、その候補を消去できます。

たとえば、ある列で数字8が2つのマスにしか入れず、そのどちらも中央ブロック内にあるとします。これは、中央ブロックの8がその列に入るという意味です。中央ブロックの他のマスには、もう8を入れられません。

考え方は行の場合と同じですが、縦方向に適用します。

行がブロック内の数字を「主張」するとき

ある行で、その数字が入れるすべての位置が同じブロック内に集中しているとき、その行はブロック内のその数字を主張しています。

各行には1から9までのすべての数字が必要なので、その行にはその数字が必要です。その数字が入れるマスが1つのブロック内にしかないなら、その数字は必ずその行とそのブロックの交差部分に入ります。

この情報によって、ブロック内の他のマスから候補を消去できます。

重要なのは、考え方がブロックではなく行から始まることです。「この行でこの数字はどこに入れるか?」と考えています。

列がブロック内の数字を「主張」するとき

ある列で、その数字が入れるすべての位置が同じブロックに属しているとき、その列はブロック内のその数字を主張しています。

ここでも、その数字は列に現れる必要があります。特定のブロック内にしか現れないなら、その数字はその列とそのブロックの交差部分に入ります。

そのため、その候補はブロック内の他のマス、つまりその列に属していないマスから消去できます。

この状況は行の場合より分かりにくいことがありますが、同じくらい有用です。見つけるには、候補を縦方向にしっかり読むことが重要です。

ガイド付き例

盤面の2行目を想像してください。この行で数字5は2つのマスにしか入れません。どちらのマスも上中央のブロックにあります。

これは、2行目の5が必ず上中央のブロック内に入るという意味です。

そのため、そのブロック内で2行目に属していないマスには5は現れません。そこから候補5を消去できます。

消去後、ブロック内のどれかのマスに候補が1つだけ残るか、新しいHidden Singleが現れることがあります。

これがClaimingの価値です。可能性を減らし、新しい手を準備します。

Pointingとの違い

ClaimingとPointingはとても近いテクニックですが、始まる方向が異なります。

Pointingではブロックを見て、ある数字の候補がすべて同じ行または列にあることに気づきます。その後、そのライン上のブロック外から候補を消去します。

Claimingでは行または列を見て、ある数字の候補がすべて同じブロック内にあることに気づきます。その後、そのブロックの他のマスから候補を消去します。

覚えやすく言うと、Pointingはブロックから始まり外側へ向かいます。Claimingはラインから始まりブロックを絞り込みます。

続きを読む