• 締切済み

西尾徹也のナンプレ「数独」100番勝負の第81番

西尾徹也のナンプレ100番勝負の81番の 問題を解いていましたら以下の所 で止まってしまいました。 色々考えていますが どうしても分かりません。 理詰で決まるなら「次はどこが決まるのでしょうか? 決まる意味も一緒にどなたか教えてください。   abc def ghi (1) --8 265 1-- (2) --6 943 5-- (3) -35 817 96- (4) 572 481 396 (5) 3-4 -7- 2-- (6) 86- 3-2 4-7 (7) -8- -3- 74- (8) --7 --4 8-- (9) --3 7-8 6--

みんなの回答

回答No.4

 4角の法則をご存知ですか。これは基本的な法則なので、ぜひ覚えてください。3行目と7行目。a3とi3に2が来ます。同様にa7とi7に2がきます。各行にはほかに2は入りません。これらの2はいずれかが2であるということです。これか2行(または2列)となることにより、タテヨコいずれかが2になるという理屈になります。つまり、i3またはi7のいずれかが2になります。  とすると、i2の候補は28ですよね。ここには2はこないことになります。ですからi2=8ということになります。ここである程度進んだら、こんどはa1 i1 a3 i3 に 4の 4角が 見出されます。ここで 他のマスの来るはずのない4を消していきます。この問題はこれで解決します。

回答No.3

(3)行を見ます。a3 i3 に 2 が来ます。 (7)行を見ます。a7 i7 に 2 が来ます。 a3 i3 の いずれかが 2 です。 同様に a7 i7 の いずれかが 2 です。 ということは、i3 または i7 の いずれかが 2 です。 したがって、i2に 2 は 入りません。 i2 には 8 しか 入りません。

noname#39977
noname#39977
回答No.2

トライ&エラーはどちらかを仮定して、そこから数手先で矛盾が生じるときに用いるものです。ところが今回は数手先ではなく、すぐに矛盾が生じました。そのため、これはトライ&エラーとはいえないのだと思います。 それに浜田ロジック自体、お持ちの『ナンプレ100番勝負』の最初にある解説ページに載っている解法なのでその本内で使用するのはアリだと思います。

sudoku2
質問者

お礼

tatumi10様 明快なご説明をありがとうございます。 私が「浜田ロジック」と言うものが良く分かっていなかったもので トライ&エラー方式との違いが分からず、トンチンカンな質問をしたようです。tatumi10様のご説明により良く分かりました。 これで 理詰めで解く範囲が広がりました。 ありがとうございました。

noname#39977
noname#39977
回答No.1

こんにちは。私も今、同じ本を解いているところです。(まだ30番台後半ですが) さて、今回の盤面のポイントは『浜田ロジック』です。 ポイントとなる場所に\、@、*をつけてみました。   abc def ghi (1) --8 265 1-- (2) --6 943 5-- (3) -35 817 96- (4) 572 481 396 (5) 3\4 -7* 2-- (6) 86@ 3-2 4-7 (7) -8\ -3* 74- (8) --7 --4 8-- (9) --3 7-8 6-- ・中央左ブロックのあきの部分(\と@)に入るのは『1、9』ですね ・c列のあきの部分(\と@)に入るのも『1、9』ですね ・f列のあきの部分(*と*)に入るのは『6,9』ですね さて、横方向にみてみると\と*は2つとも同じ行にありますよね。 さっき書いたように\に入るのは1か9です。ところが\に9を入れてみるとf列に9を入れることができなくなります。よって\には1が入ることが確定します。 また、すぐに@には9が入ることもわかりますね では、頑張ってください

sudoku2
質問者

お礼

アドバイスをありがとうございます。 なるほど これが「浜田ロジック」というものなのですか。 どちらかを入れて矛盾が生じたらもう一方を入れる というのは トライ&エラー方式かなと思って 考えから除いていました。 私にはこの問題に関してはトライ&エラー方式との違いがわかりません。 違いを教えて頂ければ幸いです。宜しくお願いします。

関連するQ&A

  • 数独の問題で次の一手を教えてください。

    数独の問題を解いていましたら以下の所 で止まってしまいました。 仮定置きで進めるしかないのでしょうか? 理詰で決まるなら「次はどこが決まるのでしょうか? 決まる意味も一緒にどなたか教えてください。   abc def ghi (1) 217 536 984 (2) --6 --- 251 (3) 458 -9- 376 (4) 5-4 --9 618 (5) -82 --- 597 (6) -69 --- 423 (7) --- --- -42 (8) -4- --- -65 (9) 625 --4 839

  • 数独の問題で次の一手を教えてください。

    ニコリの問題なんですが、1週間以上悩んでます。 理詰で決まるなら次はどこが決まるのでしょうか?決まる意味も一緒にどなたか教えて下さい。お願いします。   abc def ghi (1) 357 --2 --9 (2) 862 9-- -15 (3) 491 5-- 2-- (4) 946 --5 --2 (5) 2-5 -9- --- (6) 7-8 2-- 59- (7) 684 351 927 (8) 129 --8 354 (9) 573 429 186

  • 解けない数独があります。誰か解いて頂けませんか?最近、数独に凝ってます

    解けない数独があります。誰か解いて頂けませんか?最近、数独に凝ってますが、なかなか上達しません。誰か、下記の数独を仮置きではなく、理詰めで解いて頂けないでしょうか? まだまだ初心者レベルなので、出来るだけ詳しく解き方を解説してもらえませんか?宜しくお願い致します。 問題その1 ABC DEF GHI (1)・・・ ・4・ ・31 (2)261 873 954 (3)・・3 ・・・ 2・・ (4)・・・ 9・6 4・・ (5)・・・ 4・5 ・・・ (6)・・9 7・8 ・・・ (7)・・5 ・・・ 7・・ (8)・3・ ・・4 ・6・ (9)18・ ・57 ・・・ 問題その2 ABC DEF GHI (1)・45 63・ ・・・ (2)・・・ ・・・ ・1・ (3)・72 48・ ・・9 (4)・・・ ・・・ ・7・ (5)4・・ ・・・ ・・3 (6)・3・ ・・・ ・・・ (7)2・・ ・47 95・ (8)・1・ ・・・ ・・・ (9)・・・ ・65 82・ 問題その3 ABC DEF GHI (1)・・・ ・・・ ・7・ (2)・・・ 2・3 45・ (3)・・6 5・7 ・1・ (4)397 428 ・6・ (5)82・ ・3・ 947 (6)6・・ 97・ 328 (7)・1・ 3・4 7・・ (8)・68 7・2 ・3・ (9)・・・ ・・・ ・・・

  • ナンプレ 次の一手を教えてください

    ナンプレ 次の一手を教えてください 行き詰ってしまいました、 解説もお願いします 添付は 横列は左から あかさ たなは まやら  縦列は上から abc def ghi です

  • VBA:配列の中で文字列が何番目にあるか知りたい

    たとえば Hairetu = Array("ABC","DEF","GHI") としておいて配列から"DEF"が何番目にあるのかを検索する方法はないのでしょうか? よろしくお願いします。

  • 数独 次の一手を教えてください!

    どうしても次の一手が思いつきません。 これはニコリから出題されている問題ですので、理詰めで解答できるはずなんですが。。どなたかのお力添えをお願い致します。   abc def ghi (1) 7xx 5x4 x9x (2) xxx 987 1x5 (3) x9x 6x3 x7x (4) xx9 x72 658 (5) 65x 839 x2x (6) 287 x56 3x9 (7) x1x 2x8 xxx (8) 9x6 74x x8x (9) x7x 3xx xxx

  • 二次元配列の分割

    よろしくお願いします。 $hoge = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"), "two" => array("abc" => "110", "def" => "210", "ghi" => "310"), "three" => array("abc" => "120", "def" => "220", "ghi" => "320") "four" => array("abc" => "130", "def" => "230", "ghi" => "330") ); というような配列があったとき、 abcが110以下のときと、110より大きい場合で分割した配列を 用意したいと考えてます。 具体的には、 $hoge1 = array( "one" => array("abc" => "100", "def" => "200", "ghi" => "300"), "two" => array("abc" => "110", "def" => "210", "ghi" => "310"), ); と $hoge2 = array( "three" => array("abc" => "120", "def" => "220", "ghi" => "320") "four" => array("abc" => "130", "def" => "230", "ghi" => "330") ); に分割したいと考えています。 どのように記述すればよいのでしょうか?

    • ベストアンサー
    • PHP
  • データをブロックごとに並べ替えるスクリプト

    データをブロックごとに移動して並べ替えたいのですが、 うまくいくスクリプトが書けず困っています。 APR_A----- abc 1 def 2 APR_B----- abc 3 def 4 APR_C----- abc 5 def 6 APR_A----- ghi 1 jkl 2 mno 3 APR_B----- ghi 4 jkl 5 mno 6 APR_C----- ghi 7 jkl 8 mno 9 のようなフォーマットのデータがあります。 これを以下のようにフォーマットを変えたいのですが、 awkを使ってどのようにスクリプトを書いたらよいでしょうか。 元データの中で、区切りの行は常にAPR_で始まっています。 APR_で始まる行に来たら次の列に移って2列目のみprint というのを繰り返し、APR_Aに戻ってきたら、 1列目(abc,defなど)、2列目ともprintして同様に繰り返す。 各ブロックの行数はまちまちです。(最初のブロックのように2行のブロックもあれば2番目のブロックのように3行のもあります) rowtitle APR_A APR_B APR_C abc 1 3 5 def 2 4 6 ghi 1 4 7 jkl 2 5 8 mno 3 6 9 分かりにくい文章ですが、理解していただけることを願っています。 よろしくお願いします。

  • PHPで、フォルダーにあるファイルを配列に取り込みたい

    例えば次の様なフォルダーとファイルがあるとき \abc\a.txt \abc\b.doc \abc\def\b.doc \abc\ghi\a.txt \abc\ghi\b.doc 次の様な結果を得たいのですが、どうすれば良いでしょうか? $dir[/abc/a.txt] = "/abc/a.txt" $dir[/abc/b.doc] = "/abc/b.doc" $dir[/abc/def/b.doc] = "/abc/def/b.doc" $dir[/abc/ghi/a.txt] = "/abc/ghi/a.txt" $dir[/abc/ghi/b.doc] = "/abc/ghi/b.doc" 再帰関数でできそうに思うのですが、いくら考えても分かりません。 $path = "\abc"; function getfiles($path) {} print_r(getfiles($path)); みたいにして取り出せると助かります。 すみませんが教えてください。

    • ベストアンサー
    • PHP
  • 文字列を配列にしたい

    お世話になります。 PHP4.3.9を利用しているのですが、以下のような文字列を分割して、求める形の配列に入れたいのですが、何か良い方法はありますでしょうか? ■文字列 abc=123&def=456&ghi=789 ■このような形にしたいと思っています↓ $hoge = array(   "abc"=>"123",   "def"=>"456",   "ghi"=>"789" ) ヒントだけでも結構ですので、ご教示いただけると幸いです。宜しくお願いします。

    • ベストアンサー
    • PHP