結論。未確定マスが多く残るときは、中級編と同じ「候補が最も少ないマスから仮に置いて波及させる」手順を、1回で終わらせず何回か繰り返す。 この実例(36マス中21マスが未確定)では、盤の左端の列にある3マスに順番に仮置きすることで、そのたびに周囲へ確定が連鎖的に波及し、3回の仮置きだけで残り21マスすべてが自動的に埋まりました。ただし、この「3回で解けた」という回数は、この実例固有の結果であり、上級と判定されたすべての問題が同じ回数で解けることを意味しません。
境界+隣接だけでは、盤の左側4列がまるごと未確定のまま残る
初級編・中級編と同じ手順(境界の制約→隣接マスとの整合性チェックの繰り返し)を、この6×6盤面に6巡適用すると、36マス中15マスしか確定しません(Signal側の難度判定でもlocalRounds: 6)。確定した15マスのうち12マスは盤の右側2列(列5・列6)に集中しており、残る3マス(行3列2・行3列3・行4列3)は中央付近で単独に確定します。それ以外の21マス(列1〜4のほとんど)は未確定のまま残ります。 これは中級編の6マスに比べて未確定の範囲がはるかに大きく、1回の仮置きだけでは全体を解き切れません。
候補が少ないマスから順に、仮置き→波及を繰り返す
中級編と同じ考え方(候補数が最も少ないマスを選び、仮に置いて隣接チェックを波及させる)を、未確定領域(21マス)の中で繰り返し適用します。この実例では、盤の左端の列(列1)にある3マスが、いずれも2〜3択まで絞られており、仮置きの起点として選びやすいマスでした。
1回目: 行1列1(マス0)
マス0(行1列1、左上の角)は「右」か「下」かの2択です。「右」を仮に選んで波及させると、21マス中4マスが新たに確定し、未確定は17マスまで減ります(この時点でマス6(行2列1)の候補も、3択から「右」「下」の2択まで絞られます)。
2回目: 行2列1(マス6)
未確定17マスの中で、マス6(行2列1)は「右」か「下」かの2択です。「右」を仮に選んで波及させると、さらに11マスが新たに確定し、未確定は6マスまで減ります(この時点でマス24(行5列1)の候補も、3択から「右」「下」の2択まで絞られます)。
3回目: 行5列1(マス24)
未確定6マスの中で、マス24(行5列1)は「右」か「下」かの2択です。「右」を仮に選んで波及させると、残り6マス全部が一気に確定し、未確定マスは0になります。埋め終えた盤全体で点灯判定すると、信号源(盤中央付近、行4列4=マス21)から36マス全部に点灯が届き、輪もできていません。これが正解です。
この3回の仮置き(マス0・6・24、いずれも「右」)だけで、境界+隣接では埋まらなかった21マスすべてが連鎖的に確定しました。列1にある3マスへの仮置きが、同じ列だけでなく盤全体へ波及した形です。
仮置きを誤ったときに何が起きるか
3回とも「右」を選んで正解に到達しましたが、もし1回目でマス0を「下」に選んでいたらどうなるかを確かめておきます。「マス0=下」を仮定して波及させると、隣接チェックの範囲では矛盾(候補が0件になるマス)は起きず、そのまま残りのマスも(中級編と同じ考え方で)候補が少ない順に確定させていくと、最終的に36マス全部が埋まります。ところが、埋め終えた盤全体を点灯判定すると、信号源から点灯するマスが36マス全部には届きません(実際に確認したところ、isSolvedの判定は不成立でした)。中級編と同じく、隣接チェックの範囲では検出できない「輪ができる」または「一部が孤立する」矛盾が、盤全体を埋め終えたあとに表面化します。
このため、上級編のように仮置きの回数が複数になる問題では、1回仮置きするごとに全部を埋め切ってから点灯判定する必要はなく、途中で「進捗表示(◯ / 36 接続)の伸びが止まった」「一手戻す前の状態と比べて明らかに閉じた形ができている」と感じた時点で、一手戻す(Undo)を使って直前の仮置きまで戻るのが実践的です。
上級と判定される問題の性質について
Signal本体の難度判定(README「難易度」節)は、上級(hard)を「局所推論だけでは残り30%以上かつ8マス以上が未確定で、かつ隣接する未確定領域が6マス以上まとまっており、さらに探索の深さや分岐が一定以上」と定義しています。この実例(未確定21/36マス=58%、単一の未確定領域)はこの基準に当てはまりますが、README自身が明記するとおり、この「分岐判断の回数」は探索木の中での分岐回数であり、人間が実際に判断する回数と直接対応するとは限りません。この記事の3回という仮置き回数も、この実例で実際に起きたことの記録であり、上級と判定された別の問題でも同じ回数で解ける保証ではありません。
タップ手順と検証
出題時点から正解までの、各マス(0〜35)のタップ回数(時計回り)は次のとおりです。
マス: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
タップ回数: 1 0 3 2 0 0 2 0 1 1 1 3 1 0 0 1 0 2
マス: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
タップ回数: 0 3 0 2 1 0 2 3 1 0 0 1 0 3 2 3 2 0
合計41回。実際にこの回数どおりにタップした結果が正解と完全に一致し、点灯判定も36マス全部に届くことを、Node.jsでsignal/engine.jsを直接実行して確認済みです(盤中央付近、行4列4=マス21が信号源)。
誤りやすい判断
- 未確定領域が広いからといって、闇雲に埋まりやすそうなマスへ仮置きしない。 候補数が最も少ないマス(この実例では常に2択)から始めると、波及が起きやすく、誤りだった場合の後戻りも小さく済みます。
- 1回の仮置きで全部埋まらなくても焦らない。 この実例では3回の仮置きが必要でした。仮置き1回ごとに「新たに何マス確定したか」を数えながら、確定が止まった時点で次の仮置き先を候補数最小のマスから選び直します。
- 全マス埋め終えるまで点灯判定を待たなくてよい。 進捗表示の伸びが途中で止まったら、そこが仮置きの誤りを疑うタイミングです。全部埋めてから輪の有無を確認する中級編の方法に加えて、埋めている途中でも違和感があれば一手戻すのが実践的です。
読者の検証方法
- 同じ盤面は
n=6・シードnotes-solve-hard・難度指定hardで再現できます。 - 「マス0=下」を試して、最終的に36マスへ点灯が届かないことを、自分の手元で確認できます。
- 仮置きのたびに「1マスの答え」(この記事でのヒント)で1マスだけ答え合わせしながら進めても、手順の妥当性は変わりません。全部自力で埋めたくない場合は、途中まで進めたあと「答えを見る」で仕上げても、この記事の手順の検証にはなります。
この記事が確認していないこと
- 「候補が最も少ないマスから仮置きし、波及させる」進め方が、他の上級問題でも同様に少ない仮置き回数で解けるかどうかは、この記事の範囲では検証していません。未確定領域が広いほど、必要な仮置き回数・後戻りの回数が増える可能性があります。
- Signal本体の「1マスの答え」「答えを見る」は、この記事で示した「候補が少ないマスから仮置きする」進め方と同じ手順で答えを探しているわけではありません(ヒントは単に答えと違うマスを先頭から1つ選ぶだけです)。この記事の進め方は、あくまで人間が手作業で解くための一案です。
この結果が言っていないこと
- 検証は
signal/engine.js・signal/app.js(エンジンv3、2026-09-29時点)を対象にしています。将来の版で表示・判定基準が変わる可能性があります。 - 上級(
hard)の判定基準そのもの(具体的なしきい値)は、README自身が「実プレイによる校正は未実施の暫定ルール」と明記しています。この記事も、その基準がどの程度「人間にとっての難しさ」と対応するかまでは検証していません。