• ベストアンサー

自分の中ではものすごく難しい数独にぶつかってしまいました。

自分の中ではものすごく難しい数独にぶつかってしまいました。 途中から一切数字が書き込めません。 数独の上手な解き方をご教授いただけませんでしょうか? あてずっぽうなやり方以外に方法ってあるんですかね?論理的に。 これが問題の問題です。 ***27*1** 2*7**48** 9*****762 **9**3*17 *1*****8* 7**1**3** *75*****6 *9*4****8 **2*96**1 ちなみにHARD問題と書いておりました。 どちら様か宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ishiwara
  • ベストアンサー率24% (462/1914)
回答No.4

どんな問題についてでも言えることですが、 ご自分の到達点を明示して質問すべきだと 思います。そうすれば、このサイトは、質問者に とっても回答者にとっても、とても有益なものに なるでしょう。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

■ 1列 2列 3列 4列 5列 6列 7列 8列 9列 1行 2行 ....左上 ............上中 .............右上 3行 ..ブロック .......ブロック .........ブロック 4行 5行 ....左中 ............中央 .............右中 6行.. ブロック .......ブロック .........ブロック 7行 8行 ...左下 .............下中 .............右下 9行 ..ブロック ........ブロック ........ブロック 2行で1の入るところは? ↓ 3行で1の入るところは? ↓ 3行で4の入るところは? ↓ 上中ブロックで6の入るところは? ↓ 上中ブロックで9の入るところは? ↓ 4列で9の入るところは? ↓ 4列で7の入るところは? 5行で7の入るところは? ↓ 右下ブロックで7のはいるところは? 7列で9のはいるところは? 右上ブロックで3の位置限定 左中ブロックで4の位置限定 左下ブロックで8の位置限定 右下ブロックで5の位置限定 5行で2の入るところは? 8列で2の入るところは? ↓ 6行で9の入るところは? ↓ 右上ブロックで9の入るところは? ↓ 左中ブロックで2の入るところは? 下中ブロックで2の入るところは? ↓ 6列で1の入るところは? あとは簡単 位置限定については以下のサイトを参照してください。 http://www.9x9.squares.net/9x9/Technic_b.html

fcmkm051
質問者

お礼

本当に素晴らしいです。わかりやすくて、本当にありがとうございます。 この方法は目からウロコです。 このやり方はすごくわかりやすくて最初に頂いた指示はびっくりするくらい埋めて行けました。 しかし、ごめんなさい。またつまづいてしまいました。 以下、より先に進めて行けなくなりました。 位置限定はどのような意味なのですか? 5行、8列の2が良く分かりません。 右上ブロックで3の位置限定 左中ブロックで4の位置限定 左下ブロックで8の位置限定 右下ブロックで5の位置限定 5行で2の入るところは? 8列で2の入るところは? しかし、この方法で結構埋めれましたのでコツコツやってみます。 解りかけてきました。できればもう少しお付き合いください。 お願いします。

fcmkm051
質問者

補足

解りました。2の位置確認できました。 位置限定はまだ解りません

全文を見る
すると、全ての回答が全文表示されます。
  • wisize
  • ベストアンサー率42% (37/87)
回答No.2

確実に決定できるポイントというのが少ないので初心者向けではないとのことかもしれませんが、 比較的数字が密集しているので2箇所程度に候補を絞れる場所がかなり多いです。 それを複合的に見ると結構簡単にスパスパと当てはまっていきますよ。 個人的には縦横の列よりもブロック単位で片付ける方が視界に収まりやすくて好きです。 視線を上下左右に動かすと気も散ってしまうので……。 あと大きめの紙を使うと、候補を潰すときなどのケアレスミスがなくなってやりやすいかと。

fcmkm051
質問者

お礼

ありがとうございます。 そうなんですか。私には2ケ所に絞れる場所がつかめないです。 どこなのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • wisize
  • ベストアンサー率42% (37/87)
回答No.1

836279154 257614893 941538762 529863417 314927685 768145329 175382946 693451278 482796531 書き損じはないと思いますが、これでいかがでしょうか? 解放のコツなどは専門書さえ売られているくらいの分量なので割愛しますが、 当てずっぽうは非効率的な上にあまり楽しくないと思います^^; 慣れによる部分も大きいですが、ここにこの数字を置いたらどうなるか ある程度先のことを頭に入れながら解いていかないと行き詰まりやすいんじゃないでしょうか。 それと身も蓋もない話ですが、自動解答プログラムは結構簡単に組めます。 速度や複数回答への対応などに違いはあるでしょうが、 探せばいくらでも見つかると思いますよ。自分も過去に作ったことがあります。 もう10年くらい昔ですが、どうしても欲しい賞品があったので^^;

fcmkm051
質問者

お礼

素晴らしいです。こんな短時間にありがとうございます。 私には、解き方のコツもわからなかったです。 実際にドコを解いていったとかあるんですか? 良かったらおしえていただけませんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 難しい数独の解き方をご教授ください

    数独は かなりレベルアップしたつもりですが またまた ある数独の問題で 途中からまったく進まなくなってしまいました。 突破口のヒントをください。 あと一つ書き込めばクリアというところで ストップしてしまいました。 仮置きではなく 論理的にクリアしたいと思っています。 よろしくお願いします。 **362**85 6*8159*34 5**83*6** 347215896 851963472 *6*748153 *8639*547 *35476**8 ***58*36*

  • この数独の解き方を教えてください

    最近数独にハマりました。 優しい問題~普通レベルは解けるようになったんですが 下記の問題が解けません。 私自身いろいろなサイトを見て勉強しているのですが いまいち理解できません。 数独に詳しい方にご教授いただきたいです。 仮定で進めるのではなく、理詰めで解きたいです。 お手数ですが、どのような理由で数字が入るのか 教えていただけませんでしょうか。 よろしくお願いいたします。

  • 数独パズルの解き方

    難解な数独パズルを解き進めていくと行き詰まってしまいます 一つの升には、必ずこの数字が入るという論理を事前に見つける方法が必ずあるのでしょうか ご教示よろしくお願いします 私の場合は論理的に選択できなくなると、可能性のある数字を選択してみて進めております その場合、自分で解いたのだという達成感が味わえずストレスがたまります 行き詰まった時に、空いた升に二つの数字を入れられる場合はそのうちの一つの数字をはめて、その後を解き進めすべて間違いなく埋められた場合は選択したその数字が正解であり、間違いが生じた場合はその選択が間違いだったので、もう一つの数字を入れて解き進めております

  • 数独かを判断するプログラム

    私が作ろうとしているプログラムは数独を解くものではなく、予めテキストファイルに書かれている横9つ縦9つ、計81個の数字の表が、数独として成り立っているかを判断するものです。 数独についてはこちらで http://ja.wikipedia.org/wiki/数独 or http://sudoku.ara3.net/rule.htm 配列をa[9][9]と用意し、テキストファイルから数字を左上から順に配列に確保していき、その表が数独かどうか判断する段階で躓いています。3×3のマスの中に1~9までの数字が1個ずつあり、かつそのマスが計9つあれば数独なので、まず最初の3×3のマスの中の数字を1~9まで確認し、それを残り8つのマスにも同様に繰り返すだけで良いと思うのですが、その方法がわからず困っています。どなたかお解かりになる方、よろしくお願いします。 例として、テキストファイルの数字の表は以下の様になっています。 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6 2 3 4 5 6 7 8 9 1 5 6 7 8 9 1 2 3 4 8 9 1 2 3 4 5 6 7 3 4 5 6 7 8 9 1 2 6 7 8 9 1 2 3 4 5 9 1 2 3 4 5 6 7 8 ちなみにこの表は数独として成り立っています。

  • 数独をとくプログラム

    C初心者です。大学生です。 タイトルの通り、Cで数独を解くプログラムを考えています。 数独については http://www.nikoli.co.jp/puzzles/1/ をご参照ください。 で、数独にも難易度があり、初めからある程度数字が埋まっている(簡単な) 問題を解くプログラムは作ることが出来ました。 単純に、各マスの構造体Cellに対してsign[1],sign[2],,,,,sign[9]を定義し、 それが1なら可能性あり、0なら可能性なし、として (例えばsign2]==1,sign[5]==0ならそのマスは2になる可能性はあるが5になることはない) 丹念に各マスに対してそのマスが属するブロック、列、行を調べて最後まで1であるflagを探すようにしたのです。 しかし初めから埋まっている数字が少ないと(難しいと)そもそも回答が1通りでない、 などの理由から上記のアルゴリズムでは解くことが出来ません。 あきらかにどこかをあてずっぽに仮定する作業(バックトラック?) が必要になりそうです。 ・・・が、それをどうやって実現したらいいかで行き詰っています。 どうか知恵を貸してください。よろしくお願いいたします。。。

  • 数独 これを・・・

    こんにちは。 誰かこの数独の問題の解き方を教えてください。 http://www.sudokugame.org/archive/hardsudoku-20101126.html ほぼ毎日息抜きとして、こちらの日替わり問題(上級編)を解かしてもらっているのですが、 問題によって途中で行き詰る事もあるのですが、1つも埋まらないのは初めてでした。 かなりくやしいです。 凡ミスかもしれませんが、「はじめの一歩」をぜひご教授お願いします。

  • ナンプレ、数独に詳しい方お願いします

    ナンプレ、数独に詳しい方お願いします 昨日も質問させて頂きました 昨日から2手しか進んでいません 次の一手のヒントを教えて下さい なるべく答えよりヒントでお願いしたいです 可能性のある数字を全て書き込む やり方でなくこの状態から論理的には導き出す 方法でお願いしたいです 注文多くてすいません

  • 数独の次の一手について

    数独の問題です。 どなたか次の一手お分かりになる方いらっしゃいましたら、 ご教授頂けないでしょうか。これまでの進めかたでは 数字をうめることができなくなっています。 必要なテクニックなどあるのでしょうか、 分かりやすく説明いただけると助かります。 - - - - - - 4 9 - - - 7 2- - - 5 - - - - - 58 - 1 - - - 8 327 - - - 2 - - - - - - - 4 - - - 481 3 - - - 9 - 17- - - - - 2 - - - 9 7 - - 754 - - - - - - 宜しくお願いします。

  • 4×4の数独の種類

    先日の大学入試問題で 出た問題です。 4×4のマスの中に 1~4の数字を 9×9の数独と同じルールで 埋めていきます。 そのとき何通り できるかを聞いています。 各塾で出した入試速報の中で いくつかの解答が間違った そうです。 一応答えは288通り なのですが、 どう解説したらよいかが よくわかりません。 どなたか教えて いただけませんか??

  • 数独(ナンプレ)の解き方(アルゴリズム)

    プログラミングの宿題で、Javaを使って数独を解くプログラムを作っています。雑誌などにある数独の問題を解くことはできたのですが、今回はその問題もプログラムで作ってそれを解かせようというお題になってしまいました。今のところ下のような感じになっています。 1. 乱数を使って0-80までのマス番号に1-9の数字を数個適当に入れていきます。(0が左上の角で、80が右下の角です。) 乱数でマスに数字を入れますから、同じマスに数字が入ることがありますが、それはそれでそのマスを上書きしています。さらにこの段階で、数字が同じ列または3×3マスで重なることがないようにしています。 2. それを元に各マスに入る可能性のある数字をリストアップ 3. リストアップした中で、最後に必ず1つだけ数字が残るのでそれをそのマスに入れます。 とここまではできました。しかし、乱数で適当に問題をつくったにしか過ぎないから、当然ダブってしまうところや、数字が入らないマスがあります。ですから、そういったダブるところや数字の入らないマスのために補正をしたいと思うのですが、まったくアイディアが浮かびません。どのようにしたら補正をして問題を回答できますか? アルゴリズムが少々長くてもかまいません。また、Javaのコードでの回答でなくてもかまいません。とにかく、如何の様に補正するのかを知りたいです。 下にあるのが、上の1.で作った問題です。 # 0は数字が入っていないマスを示します。 060 | 000 | 080 030 | 080 | 017 000 | 100 | 000 --------------- 800 | 000 | 903 000 | 803 | 060 000 | 096 | 500 --------------- 908 | 407 | 000 205 | 000 | 400 700 | 001 | 000