🍉しいたげられたしいたけ

NO WAR! 戦争反対!Ceasefire Now! 一刻も早い停戦を!

数独(ナンプレ)で難度高い問題を解くには2択をやって矛盾が出たら引き返すしかないのだろうか?(追記あり)

育児猫(id:ikujineko)さんが7月1日付記事でナンプレ(数独)の初心者向け解き方を丁寧に解説していらっしゃいました。IDコールお騒がせします。 

www.ikujineko.com

 

ちょうど朝日新聞朝刊に載っていた問題を解こうとして悪戦苦闘していたところなので、育児猫さんのエントリーに便乗します。なお数独(=数字は独身に限る)は 株式会社ニコリ さんの商標でナンプレ(=ナンバープレイス)は一般名とのことですが、弊ブログでは出題者に倣って数独と表記します。

 

数独を簡単に説明すると、3×3のマス目からなるブロックをさらに縦横3つずつ、合計81マス並べたテーブル上に、1~9の数字を、縦、横、3×3のブロック中で重複しないよう配置するパズルです。これだけの説明でピンと来なかったら、育児猫さんのエントリーをご参照ください、と他力本願。

 

でもって7月1日(金)付朝刊に載っていた問題が、やたらと難しかった。難易度表示は5つ星中星4つだったから上には上があるようだが、それでも私なんぞを七転八倒させるには十分だった。

こんな解き方でいいのかとか、あるいはもしもっと簡単な解き方があるぞとか、ご意見のある人いらっしゃいましたらご教示ください。

 

問題は、こんなのでした。やり直しが効くようExcelに入力しています。入力を一つでも間違えたら正解にたどり着けないので、注意しなければならない。枠線は自作です。わかりやすいように初期値は背景色を黄色にしています。

朝日新聞名古屋本社版7月1日朝刊27面より

 

始めに一択で数字が決まるマスを埋めていく。1から順に縦横を見てゆき、3×3のブロックで数字の入るマスが1つしかないものを探す。

育児猫さんのエントリー2つ目の写真で「ウ」のマスの数字を求めたときのやり方です。

私の脳内では、勝手に「飛車にらみの定理」と呼称している。

左上の3×3ブロックでは、左列上から2行目のマスに2を入れるしかない。

 

そうすると、左下の3×3ブロックの、右列いちばん下の行のマスにも2が入ることがわかる。

左上の3×3ブロックと左中段の3×3ブロックは、すでに2があるため、左から3列目で2を入れることができるのは、ここしかないからだ。

列または行を一直線に見て数字を決めるやりかたは、育児猫さんのエントリーでは3枚目の写真で「エ」のマスを求めるときに登場します。

私の脳内では、マージャン用語を使って「一気通貫の定理」と勝手に呼んでいる。

 

もう一つよく使う脳内定理に「二対一の定理」または「どっちに入ってもこっちしか残ってないだろう定理」(長い名だな)というのがあるが、具体例はしばらく後で示す。

 

問題はこのようにして一択でマスの値が決まるところが、どんなに探してもあと一つしかなかったことだ。

左上の3×3ブロックの、左から2列目上から3行目が飛車にらみの定理で8に定まる。

スポンサーリンク

 

 

じゃあどうするのか? 2択になるマスを探して、そのうち一つをとりあえず埋めてみて、矛盾が出たら仮定が間違っていたということで残りの選択肢を選ぶしかないのだろうか?

矛盾というのは、どんな数字を入れることもできないマスが出現するという意味である。最後の方で実例が示せると思う。

もしとりあえず選んだものが間違っていたら、とんでもない手戻りが発生するが、それ以外に方法が思いつかない。

 

2択になるマスは何ケースかあるが、1~8の数字の順に探したので最後の8から選んでみた。なおこの問題の初期値に9は含まれない。

 

飛車にらみの定理を使うと、中央の3×3ブロックで8が入るのは薄いオレンジか薄い緑に着色したマスのどちらか、およびその下の3×3ブロックでやはり薄いオレンジか薄い緑のブロックのどちらかである。

 

もし中央の3×3ブロックでオレンジのマスに8を入れれば、その下のブロックもオレンジのマスに8を入れるしかない。

 

同様に中央の3×3ブロックで緑のマスに8を入れれば、その下のブロックも緑のマスに8を入れるしかない。

今は緑のマスに8を入れてみた。なんで緑の方を選んだかというと、これによって数字が決まる他のマスが多そうだったからだ。早い話がヤマカンだ。

 

じっさい右下の3×3ブロックで、濃い目の緑で着色したマスがすぐ埋まる。

https://cdn-ak.f.st-hatena.com/images/fotolife/w/watto/20220703/20220703150428.png

繰り返すが、もしダメだったら3つ上の図まで引き返さなければならない。

 

以降、一択で埋まるマスを埋めていく。

三枚目の図の直後で予告した脳内定理「二対一の定理」または「どっちに入ってもこっちしか残ってないだろう定理」の例が、ようやく示せるようになったので示してみる。

7を埋めていくと、飛車にらみの定理により中央の3×3ブロックではオレンジで示したマスのどちらかに7を入れるしかないことがわかる。どちらに7を入れても、その上のブロックはやはりオレンジで示したマスに7を入れるしかないことがわかる。

 

もう一つ例を。9を埋めていくと、左側上下中央の3×3ブロックではオレンジで示したマスのどちらかに9を入れるしかない。

どちらに9を入れたとしても、今度は上から3行目を横に見たとき、一気通貫の定理により右上3×3ブロックのオレンジで示したマスに9を入れるしかないことがわかるのである。

こんな状態を「二対一の定理」または「どっちに入ってもこっちしか残ってないだろう定理」と脳内で呼んでいる。

 

これで最後まで一択で進んでくれればよいのだが、そうは問屋が卸してくれなかった。

終盤になって、もう一度2択に頼らざるを得ない場面が出現した。

この状態で、例えば右上の3×3ブロックでは残ったどちらかに3が入り他方に8が入る。

巡り巡ってどのブロックでも、残りが2択以上になる。

 

もし上から1行目右から1列目に3を入れると、右側上下中央の3×3ブロックに、どうしても9を入れることができなくなる。

https://cdn-ak.f.st-hatena.com/images/fotolife/w/watto/20220703/20220703160200.png

このような状態を矛盾と呼称していたつもりである。

あれ、見直したらこれでも完成してしまう? 末尾に追記しました!

 

上から1行目右から3列目、すなわち図中にやや濃いオレンジで示したマスに3を入れると、残りはすべて一択で決定する。これが正解だと思う。

すいません、今回は本当に自信がないんです。数独って、こんなやり方をするものなの? こんなやり方をしてもいいの? (´Д`;
くどいようですが、もし間違ったことを言っていたら、あるいはもっとうまいやり方があれば、ぜひご教示願います m(_ _;)m

 

追記:

検証したところ、上から1行目右から1列目に3を入れても完成してしまうようでした。つまり別解ありってこと?

https://cdn-ak.f.st-hatena.com/images/fotolife/w/watto/20220703/20220703212316.png

この図と一つ上の図で違うところは、この図に薄青で、上の図にオレンジで着色した部分になります。

検証が足りてなくて、どこかまだ間違っているかも知れない。だけど別解ありの数独がないなんてことも証明されてないはず。朝日新聞社に問い合わせてみようかな…?

 

追記の追記:

ぎゃああああぁぁぁぁぁっ!!! やっちまっただよ!!!!!

すみません、ただの問題の写し間違いでした。右下の3×3ブロックで、6を右端下から3行目のマスに入れなきゃならないところを、右端下から2行目のマスに入れてしまっていました!

「入力を一つでも間違えたら正解にたどり着けない」と自分で書いておきながら、なんということだ!_| ̄|○

https://cdn-ak.f.st-hatena.com/images/fotolife/w/watto/20220703/20220703214129.png

 

最後まで一択だけで解けた。

https://cdn-ak.f.st-hatena.com/images/fotolife/w/watto/20220703/20220703225858.png

これでこのエントリーの趣旨は根底から崩壊してしまったが、偶然、別解ありの数独問題ができてしまったことが個人的には興味深かったので、エントリー自体は残すことにします。お目汚し大変失礼しました。

スポンサーリンク