• ベストアンサー

数独は必ず推測できるものでしょうか?

いまさらですが、数独について教えて下さい。http://www.websudoku.com/というサイトで数独でときどき遊ぶのですが、ごくまれに解けないことがあります。そんな時も、適当に数字を入れてみると、その先に進んだときに矛盾がでてきて、その数字が違っていたとして、そこにまで戻ることで解くことはできます。しかし、この場合、私が見落としているだけで、数学的には必ず解法がある(推測できる)はずなんでしょうか。

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

  • ベストアンサー
  • age_momo
  • ベストアンサー率52% (327/622)
回答No.2

以前、数独を解く時のメモ帳代わりにPCを使っていたのが高じて PCで数独の自動解答プログラム、さらに高じて自動問題作成プログラムを 作ったことがあります。 問題を作るのには一旦、ランダムな数字を使って表を埋め(つまり、正解を作る) そこから解答の一意性を確認しながら(要は他の数字を埋めても正解にならないことを確認) 抜ける数字は抜いていくプログラムです。(抜く評価をする位置はランダム) 経験的には推論を入れない解法で数字を入れていける問題を作っても 数字は25-8個程度しか残りません。推論を許して問題を作成させても最高で2回の 推論、21個の数字が残りました。ここで言う推論とは理論的には決められないが 可能性のある数字を仮に入れて矛盾が出れば最後の推論まで戻って別の数字を 入れる動作です。(何の数字も入って無い状態からの解答はこれの連続で作ります) これまた経験的には適当な数字を入れながら解答の有無、一意性を確認する よりは一旦、解答を作ったほうが確実でそれなりの問題は作れます。 よって、問題の表記ミス等が無ければ解答は間違いなくあると思います。 ただ、アート的な数字の残し方をしているものは違う方法を採っているかも知れません。 残す部分を先に決めて、解答の有無、一意性が出る数字の埋め方を考えさせる プログラムも十分、作成可能ですので。ただ、その場合も解答の有無はPCに 確認させているとは思いますので、解答が無いということは無いと思います。

80islands
質問者

補足

ご回答いただいてありがとうございます。 ただ、私はそこまで本格的にやっていないので、少し理解が及ばないのですが、もしかすると、私の質問の仕方が悪かったのかも知れないと思います。私がやってみて解けなかった問題というのも、ただ一つの解というのはあったのです。ただ、おっしゃっている推論ということだと思うのですが、それをしないと解けない問題が非常にまれにあったのです。普通は、その列、行、3×3枠内から推測できました。 お手数でなければ、「経験的には推論を入れない解法で数字を入れていける問題を作っても数字は25-8個程度しか残りません・・・」の部分をもう少し素人にも分かるように説明していただけると助かります。問題を作る際、数字がその数だけ残るということでしょうか。 よろしくお願いいたします。

その他の回答 (1)

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.1

「解けない」の判断基準がよく分かりません。 「適当に数字を~戻ることで」解いた場合は「解いた」とは言えないということでしょうか? それは矛盾がすぐに分かるか後で分かるかの違いに過ぎないと思います。 例えば ・適当に1を入れてみた。その時はよかったが後で隣に1が必要になった。矛盾だ。 というのと ・適当に1を入れてみた。隣に1があった。矛盾だ。 というのは本質的に違いはないでしょう。 >数学的には必ず解法がある(推測できる)はずなんでしょうか 適当に数字を書いただけでは解なしや複数解の問題が簡単にできてしまいます。問題として成り立たせるために唯一解の問題のみを選別していると思います。 ただ、人間が定石に基づいてプレイして解けるかどうかは分かりません。 そもそも定石と言ってもどの程度までを定石というのかの定義がはっきりしませんので、ある人は解けないと思った問題を別の人は定石に基づいて解くこともあるでしょう。

80islands
質問者

お礼

そうですね、確かに後で矛盾が分かるのと、その時点で自分で矛盾が分かるのでは、本質的に同じかも知れませんね。 コンピューターならいくつか先まで読むということができるのかもしれませんが、私にはそのマスに関連することまでしかその時点では分からりません。なんとなく仮に数字を入れてみてという方法が邪道なような気がしてしまって・・・。でもきっとおっしゃるように本質的には矛盾ないように数をうめていくという意味では、同じなんでしょうね。 丁寧に回答を下さってありがとうございました。

関連するQ&A

  • 「世界で一番むつかしい数独の問題」・・・

    東大の渡辺氏のサイトに「世界で一番むつかしい数独の問題」というのが載っているのを見つけました。フィンランドの数学者、Inkara氏が2010年、2012年に発表したものだそうです。 http://apollon.issp.u-tokyo.ac.jp/~watanabe/sample/sudoku/index_j.html (A)2010年          (B)2012年 005 300 000       800 000 000   800 000 020       003 600 000 070 010 500       070 090 200 400 005 300       050 007 000 010 070 006       000 045 700 003 200 080       000 100 030  000 500 009       001 000 068 004 000 030       008 500 010 000 009 700       090 000 400 ※空白には「0」を入れています。 渡辺氏はこれよりもむつかしい問題を作ろうと考えたようです。ス^パーコンピュータを動かして作ったのが次の問題です。 (C)2013年3月 061 007 003 092 003 000 000 000 000 008 530 000 000 000 504 500 008 000 040 000 001 000 160 800 600 000 000 しかしこれは市販の問題集に載っている上級レベルの問題です。これを「世界で一番むつかしい問題」だと判断して発表したのですから計算機を動かすアルゴリズムに初歩的なミスがあった、または渡辺氏の数独の理解の程度に致命的な欠陥があったということになりそうです。(渡辺氏は自分では数独の問題を解こうとはしていないようです。コンピュータの出した数値だけをそのまま判断材料にしているのです。普通に解けば簡単にわかる不具合が見つからないままになっています。) (C)が簡単に解くことができる問題だったということが分かったので作り直したというものが追記の形で発表されています。 (D)3/22付け 追記 080 000 150 406 509 080 000 008 000 000 000 000 002 070 003 300 801 000 900 170 000 600 000 004 150 000 090 Inkara氏の(A)(B)に比べると格段にやさしいです。 「世界で一番むつかしい問題」を作ろうとしている意味とはどういうものでしょう。 数独というゲームとどういう関係があるのかもよくわかりません。 「むつかしい」ということがどういうことかも十分に吟味されているとは思えません。 解くのに必要な時間にはかなりの違いがあります。(B)>(A)>(D)です。でも解くのに必要な時間の違いがむつかしさの違いでしょうか。(B)を解くのには時間がかかります。でもむつかしくはありません。面倒なだけです。同じ論理をただ繰り返し使っているだけです。仮定の段数が多いので場合の数が多くなり、可能性のチェックに時間がかかるのです。ゲームとしての面白さ、むつかしさは時間だけではないはずです。(面倒くさいと思いながらも意地になって解きました。) ゲームとしての面白さは別にして、人の手で解くことのできるギリギリのところはどこらあたりにあるのかを探ることを目的にしているのかもしれません。でも渡辺氏の初めの問題(問題C)は「どうだ人の手では解けないだろう!」という形で発表されているのですから「人の手では解けない問題を作る」ことを目指しているようにも見えます。そうであればもはや数独ではありません。数独から派生した数学の問題だということになります。 そうであれば「むつかしい」の概念規定が重要になります。「むつかしい」というのは解く立場があってのことです。 たとえば初期設定の数字の数Noについて、「唯一解の存在する最低のNoは?」という問題は数学的に設定することは可能でしょう。でも数独の問題として解くときにNoが小さいことはそのままむつかしいにはつながりません。市販の難問問題集の中にNoが17,18というような問題ばかり集めているものがあります。でも別の問題集に載っているNoが22,23のものよりも易しいのです。 数独、ナンプレの本を出版している人たちはどういう風に考えているのでしょうか。 2010年に発表された問題であれば知れ渡っているはずです。 ゲームとしての数独、ナンプレとは関係がないとして無視しているのでしょうか。 でも数独、ナンプレの内部の話としても「むつかしい」というのは全然吟味されていないように思います。「超難問」とか「究極の難問」、「激辛の難問」とかのタイトルの本がたくさん売られています。むつかしさのレベルはまちまちです。中には鉛筆を縦横に置くだけで解けてしまうような問題まで含まれています。 参考 (B)を解いてみた結果 812 753 649 943 682 157 675 491 283 154 237 896 369 845 721 287 169 534 521 974 368 438 526 917 796 218 452 たぶん間違っていないと思います。 使ったのは紙と鉛筆とマーカーペンだけです。 A4の用紙に書いていけるところまで行きます。 場合分けに入るところからあとはコピーした用紙をたくさん使いました。 どの問題を解くのでも場合分けと仮定が必要です。(A)、(B)では仮定の積み重ねが必要ですが(D)では並立的な仮定しか使いません。 一般解法とと言われているものも仮定を使っています。ただ並立的にしか使いません。 「この本の問題を解くのに仮定法は使わない。すべて理詰めで解くことができる」と書いてある本がありますが誤りです。数独、ナンプレの問題の解法は「仮定法」なしでは成り立ちません。

  • 数独パズルの解き方

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

  • エクセルVBAで数独

     エクセルのVBAを使って、ナンバープレイス(数独?)の問題を創りたいのですが、どうすれば良いでしょう?  一応、以下の条件で自分で組んでみました。  ○各マス目で、「縦9マス」「横9マス」「3×3マス」中に有る数字を【1~9】内から消去し、残った数字内からランダムで挿入する数字を決定する。  ○処理中に、どうしても決定できないマス目が発生した場合は、決定済みのマス目をある程度チャラにし(処理を戻って)やり直す。  ○上記方法で、1~81までのマス目を埋めていく。  ○最後に、適当な数のマス目の数字を消去する。  一問作成するのに結構な時間がかかる上、時には完成しない(やり直し続ける)事態が発生します。  何か良い方法(アルゴリズム?)が有ったらご教示願います。  (…アルゴリズムを質問するのは、カテゴリー違いでしょうか?)

  • 数独の問題レベル決定のコツ

     9×9マス全てに数独のルール通り、重複無く「1~9」の数字を入れた後、適当数(一般的な問題で有る位)の空白を作り問題を完成させたいのです。    上記のやり方で、回答が1つだけになるようにしたい時、どのようにに空白を作れば難易度の調整が出来るのでしょうか?  空白場所を決定する『コツ』が有れば、お教えください。

  • 数独・ナンプレにはまっている方

    ある程度のレベルになってくると一度も手が止まらずに 最後まで解けてしまうというようなことはないと思います。 たとえば一つのマスに2つの数字のどちらかしか入らない、けどどち らが入るかはぱっと見ただけでは分からないという状態の場合 (1)何が何でも理詰めで一方を消去してから先に進めますか? (2)適当に一方でやってみて、それが駄目ならもう一方の数字で、 という風に埋めていきますか? どちらなのでしょうか? (ちなみに私は極力(1)でやって、どう しても解けない場合だけ解析ソフトを用います)

  • メールアドレス間違いの推測は?

    小さなネットショップを経営しております。メールのマナーについて教えてください。 時々、ご注文されるとき、お客様が間違ってメールアドレスを入力なさる事があります。自動返信メールは当然、戻ってきてしまい、そのさき、そのままだと取り引きが出来ませんので、いつもはお電話を差し上げるようにしております。 が、ときどき、ヤフーメールやホットメールなどの場合”yahoo”の部分をたとえば”yaho”と入力されていたりとかで、間違い部分を用意に推測できる事があるのです。 その場合、こちらで直して、メール送信してもいいものだろうかと、毎回悩んでいます。 当然、メールの中には個人情報が含まれているわけで、万一のことを考えて電話にしているのですが、時にはお電話だとご迷惑な場合や、一切連絡がつかない場合もあり、考えてしまうときがあるのです。 こういうとき、どうすべきだと思われますか? お客様の立場で、あるいは同じようなショップをなさっている立場、いずれでもかまいません。教えていただけると助かります。 どうぞよろしくお願いいたします。

  • 下図の数独を提示した基準で解いて欲しいのですが。

    画像の数独(途中まで解いたもの)について、以下の基準で、どれかひとつでも、マスの埋まる解き方、あるいは候補が除外できる解き方(できるならテク名とその参照元も)を教えてください。 大きい数字が表出数字、丸で囲んだ数字があとから埋めた数字、小さい数字が今のところ除外できていない候補数字です。 (ここまでは解答と合っていることは確認済みです) (初級/中級程度の手筋は省略して結構です。全部の解答は必要ありません) [NG - 禁止テク] ・Brute Forceなどのコンピュータ用のテク ・以下のサイトで「Techniques of Last Resort」に分類されているテク http://webcache.googleusercontent.com/search?q=cache:w6oEYndQmc8J:www.sudopedia.org/wiki/Solving_Technique+sudopedia&cd=1&hl=ja&ct=clnk&gl=jp&source=www.google.co.jp [OK] ・上記以外のテクで、 Hodoku( http://hodoku.sourceforge.net/en/techniques.php )と ミシチャンのサイト( http://www.geocities.jp/master_mishichan/ )にあるテクおよびそのバリエーションならOKです。 ・Unique Rectangle などの唯一解系もOKです。 ・その他、独自のテクは、この問題だけでなく他の問題にも適用できるような一般化した解説を付けてください。 (参照元があればそれもお願いします) ※もろに試行錯誤的な方法なら解けるのは当たり前すぎるので、仮定法を使わず、基準を遵守してください。 注文が多くて申し訳ありませんが宜しくお願い致します。

  • 連続する数字ので次の数字を求める問題

    こんにちは、よろしくお願いいたします。 表題のとおりなのですが、例えば 「2-4-6-8-○」の様に○に入る数字は何かという問題です。 2ずつ増えているので答えは10となる・・・というような問題を扱っているサイトを探しています。 上記のようなものから上級向けなるものがあるサイトを希望します。 そもそも、こういった「数学」なのか「パズル」なのか分からないのですがどのような言い方で呼ばれているのでしょうか?? ナンバープレイスや数独といったような呼び名も存在すると思うのですがそちらも分かればご存知の方は教えていただきたく思います。 よろしくお願いいたします。

  • 数独(ナンバープレイス)得意な方に質問です。

    数独(ナンバープレイス)得意な方に質問です。 私は結構パズル問題が好きで、 雑誌を購入したり、 携帯でそういうサイトに登録してプレイしています。 (基本は懸賞に応募するためという感じなのですが、パズル自体暇つぶし的にするのが大好きです) で、大体、クイズ雑誌とかではいろんなパズルが入ってるやつを買ったりするのですが 携帯の懸賞付きパズルサイト(CMでもやっているパクロスとか)では クロスワード、ナンバープレイス(数独)、お絵かきパズル、スケルトン とかは、大体そういうサイトでは問題配信をしています。 クロスワードは知識の問題ですから、 ぶっちゃけ、分からなくてマスが埋められない時は調べればどうにか… スケルトンはいれるキーワードが決まってますし、どんだけ難しくても コツコツやればどうにか… 問題はお絵かきパズルとナンバープレイスです。 こればかりは難しすぎるとやっぱり途中で止まってしまい、お手上げ状態です。 で、ナンバープレイス得意な方、お好きな方にお聞きしたいのですが 皆さんはどうやって解かれてますか? そういうサイトでは、初級問題、中級問題、上級問題となっていたりするのですが 初級は普通に解けます。 中級も少し時間がかかるものの、解けます。 ただ、上級問題は… 半分解けて、半分解けないという感じです。 問題によっては解けるのですが… 9×9のマスの縦9マス、横9マスに1~9を1つずつ 9×9のマスの中の3×3のところに1~9を1つずつ ですよね? 私の解き方としては、 分かりにくくなるかもしれませんが、書かせていただきます。 まず、 1.9×9を縦に見て、右から3列(9×3)の部分を見て、2つ同じ数字があったら その数字がない3×3の部分にその数字が入らないか、横列と照らし合わせてみて入るようだったら入れます。 (マスの端っこに小さく数字を仮として書く方もいますが、私は書きません。 ただ、この2つのマスは、どっちかに3が入ってどっちかに4が入るというような状況の場合は、 両方のマスに3と4を小さく書いたりはします(すごい難しい問題の場合は) 2.1と同じ要領で真ん中の3列、左の3列もやっていき、 同じ要領で、今度は9×9のマスを横に見て、上の3列、真ん中の3列、下の3列も同様にやる。 3.3×3のマスを見て、9個のマスのうち、6個以上埋まっているところがあれば、 その3×3のマスで無い数字を頭に浮かべて、埋まるか縦列と横列とを照らし合わせて、埋まるようだったら埋める。 上記のような9個のマスで6個以上埋まっているところが無かったら、 縦列1列、横列1列で見たときに、9個のマスのうち、5個以上埋まっているところがあれば 無い数字を頭に浮かべて、縦列または横列と照らし合わせて埋まるようだったら埋める。 後は上記を繰り返してという感じです。 難しい問題だと3番の部分で列で5個以上埋まっている、3×3で6個以上埋まっている事が無かったりするので その場合は 1から順に数字の場所を見ていって (携帯のサイトのナンバープレイスとかは、結構そうなのですが マス中の1が書いてあるところに矢印キーで移動していくと、他の1の部分が色が変わったりして プレイしやすくなっているんです) なので、それをたよりに、 複数の場所に1があったら、 その延長線上の列には1が入ることがないので、縦列と横列がある表を見るような感覚?百マス計算のような感覚で? これは説明しにくいので添付画像を見てください。 ただ、それでもクリアできない時があるので… これ以外に皆さんはどうやられていますか? 私は最終手段として 携帯のそういうサイトでは仮置状態にして数字を置くと、マスの端に小さく数字が入力されるんです。 で、ここのマスには1か2のどっちかが入るんだけど…どっちが入るのか分からない という状況のマスに ためしに1を小さく仮置状態で置いて、 その状態で、他のマスを仮置状態の数字で埋めていくんです。 で、途中で同じ列に3が2つ来ちゃってだめになったりしたら、仮置き状態の数字を消して 1を入れたマスは1を入れるとクリアできないという事が証明されたので 2を入れてという感じですすめたりするのですが 最高に、最高に難しい問題なんかは、これを数回繰り返さないとだめだったりして… (私の力では) 難しい問題もなんなく解かれているような方は、 こんなふうに、ためしに数字を入れて見て、だめだったら、そこにまた別の数字を入れてやり直すみたいな事はしませんよね? やり方手ほどきしていただきたいです。

  • ASINの一覧ってどこかで見られますか?

    amazonとか各書籍サイト、書籍で使われている ASINの一覧ってどっかにのってますか? 数字だけではなくて英語混ざりのものもあるので (amazonではありました。)適当に打ち込んで 推測することも出来ず・・・。 わかる方いましたらよろしくお願いいたします