日別アーカイブ: 2022-03-31

ナンプレ(二国同盟)


ナンバープレイス
ナンプレ(数独)研究©2022 TacM, Ver0.03

通算記述内容

ナンプレの入り口
解法のあらまし
単一候補検出(single candidate)
隠れシングル(Hidden Singles)
❺二国同盟(Naked Pairs)
❻隠れ二国同盟(Hidden Pairs)
⑦ポインティングペア(Pointing Pairs)

ナンプレの効果

当サイトのナンプレに関する掲載は脳トレーニングの一環としてプログラミング学習と合わせ論理的な考えを育むものです。

社会生活をする上で他人にわかりやすく物事を説明することが要求されます。それには日頃から脳を刺激し鍛錬することが大切です。

脳の内部細胞を磨くことによって頭の切れが良くなります。楽しみながらナンプレに挑戦してみましょう。

おさらい

今までにコンピュータを使ってナンプレの自動解答を求めるためのシステム構築として掲載してきた全体の流れを示します。冒頭の大目次に表したように、ナンプレの概要から始まり解法のあらましと代表的な解法の解析を述べています。

マスの位置を表示する方法など順を追って読んでいただくと理解しやすいでしょう。では二国同盟(Naked Pairs)隠れ二国同盟(Hidden Pairs)について見ていきます。

❺二国同盟(Naked Pairs)

前回までの流れを踏襲し、ナンプレの解法に進みます。ナンプレを解くに当たり、状況に応じて適切な解法を採用しなければなりません。今回は二国同盟と呼ばれる解法です。

 

上の図において、大きなサイズの黒い数字は問題として与えられ、小さな赤い数字はナンプレルールに基づいた候補数です。図により具体例で説明します。オレンジ色に囲まれた3行目に注目すると、RC32とRC38に49の候補数が挙げられています。49は3行の他のマスには存在せず、二国同盟が成立しています。

『二国同盟(ネイキッドペア, Naked Pairs)とは2つのマスに限定された2つの候補があるとき、その同一グループの他のマスにある二国同盟が成立した候補は削除できる』という解法です。

これを上の図に当てはめると3行目の9マスにおいて、49はRC32とRC38以外には使うことができません。よって、3行の他のマスから4あるいは9を削除することができます。RC36の69から9を削除し、RC36に6を確定させます。RC36確定を反映してRC35の68から6を削除するとRC35は8が確定します。

一方、ブロック2に着目すると、6と8が確定したことにより、RC14と15から8,RC24と26から6を削除することができます。他に5列と6列から8と6を削除できますが、4行から9行までの下部分をざっくり削除したので省略します。

二国同盟解法

二国同盟の解法は図に示した候補数の制御を行列ブロックのすべてについて確認します。

二国同盟による候補数の制御は、9行9列9ブロックに3重に絡んでいるので動的にその後の確認に反映させなければなりません。


再帰処理の代表例《階乗を求める関数》

そのため、再帰処理が可能ならば一般的な処理よりも簡潔なコードで制御を実現することが可能です。再帰処理は上図に示した階乗を求める関数が代表例として有名です。再帰処理に注目するとこれからの進み方がはかどるでしょう。

❻隠れ二国同盟(Hidden Pairs)

隠れ二国同盟(Hidden Pairs)とは、 「2つのマスに限定された2つの候補が他の候補と同居する時、 そのマスの他の候補を削除できる」です。隠れ二国同盟は、その2つの候補が行(または列、ブロック)の中で2度だけ出現しています。隠れ二国同盟からそのマスの他の候補を削除して正真正銘の二国同盟に帰着させて同様の制御を行います。

隠れ二国同盟解法

上図のオレンジ色に囲まれたブロック2に注目すると49の候補数は9マスの内、RC14とRC35の中で限定的に使われています。このような状態を隠れ二国同盟が成立していると表現します。

隠れ二国同盟のルールでは同盟成立として選ばれた2つの候補以外の候補を削除できるので成立要因の候補数だけをそのマスに残します。

この解法として2候補による隠れ同盟を速やかにあぶりだすことです。

以下の図は400数十年前、戦国時代の同盟関係を示しています。ナンプレとは何ら関係ありませんが頭休めです。

「武田信玄の歴史を年表・勢力図で簡単に、ざっくりと見てみよう!」より

動作例と操作方法

下図に二国同盟、隠れ二国同盟を用いてナンプレ課題を解いています。当初、初期画面が表示されています。開始ボタンをクリックすると9×9のマスが少しずつ埋め込まれます。右上の動作中ボタンが回転中から静止すれば終了です。

右端できごと欄のよくできましたマーク(💮)の後、’Allian’が出力されています。これが二国同盟、隠れ二国同盟解法によって確定した数字であることを表しています。

動作例


あとがき

二国同盟と隠れ二国同盟は行・列・ブロック内の2つのペアにより、限定される柵(しがらみ)を利用して正解を絞る方法でした。

単一候補(single candidate)と隠れシングル(Hidden Singles)よりは幾分、難しくなっています。これらが大過なく組み込み成功なれば先は明るいと言えましょう。

ポインティングペア(Pointing Pairs)

次はポインティングペア(Pointing Pairs)解法を取り上げる予定です。

coming soon! 🔜

おまけ

2023年度から高校において「情報Ⅱ」がスタートします。当サイトはそれらと連動しているわけではありません。何はともあれ論理的な考えを育むために存在します。