数独(ナンプレ)をオンラインで解く・新しい問題を作る
この数独ソルバーは、9 × 9 の問題なら一瞬で解答します。盤面に数字を入力するか貼り付けて「解く」を押すと、空いていたマスが紫色の斜体の数字で埋まります。答えを出すだけではありません。重複している数字を赤枠で示し、解がない問題や解が複数ある問題を知らせ、人が解くのに必要なテクニックから難易度も判定します。なお「数独」はニコリの登録商標で、ほかの出版社では「ナンバープレース(ナンプレ)」とも呼ばれます。
自分で考えたい人には、1 マスだけ埋めて理由を説明する「ヒント」(例:「ブロック4:7が入るのは5行目・2列目だけです…」。間違った数字があれば先に訂正します)、答えを明かさずに間違いだけを指摘する「チェック」があります。さらに問題作成機能で、解が一つだけの新しい問題を初級からエキスパートまで作れ、タイマーと印刷にも対応しています。完成した盤面は全部で約 6.67 × 1021 通り(フェルゲンハウアーとジャーヴィス、2005 年)あるので、問題がなくなる心配はありません。
-
問題を入力する
「全消去」を押すと「問題を入力」モードに切り替わるので、マスをクリックし、キーボードまたは数字パッドで数字を入力します(矢印キーで選択マスを移動)。「問題を貼り付け/読み込み」に 81 文字(空きマスは 0 または .)を貼り付けて「読み込む」を押すか、盤面で Ctrl+V を押して貼り付けることもできます。
-
解く、またはヒントをもらう
「解く」は盤面全体を埋めて難易度を表示し、「ヒント」は数字を一つだけ入れて理由を説明し、「チェック」は間違った数字を赤い点線で囲みます。「元に戻す」(Ctrl+Z)でいつでも一手戻せます。
-
新しい問題で遊ぶ
「難易度」を選んで「新しい問題」を押すとタイマーが動き出し、別のタブに移ると一時停止し(一時停止ボタンでも止められます)、正解すると完成メッセージが表示されます。「候補数字を表示」にチェックを入れると、空きマスに入る可能性のある数字が小さく表示されます。
-
印刷・共有する
「印刷」で見やすい A4 ページが開きます。「解答を追加(2ページ目)」にチェックすると 2 ページ目に解答が付きます。「テキストでコピー」は問題の数字を 81 文字(空きマスは .)で書き出すので、友だちに送ったり後で貼り付けたりできます。
解き方の仕組み:制約伝播・バックトラック・難易度判定
各マスの候補は 9 ビットのマスクとして保存されます。数字を一つ置くと、そのマスと同じ行・列・ブロックにある 20 マスから、その数字が即座に消えます。ソルバーはネイキッドシングルとヒドゥンシングルを繰り返し適用し、それで進まなくなると、選択肢が最も少ないマス(またはユニットと数字の組)を選んで一つずつ試し、矛盾が出たらすぐに戻ります。解が二つ見つかった時点で探索を止めるので、解が一つに決まらない問題もすぐに判定できます。
問題作成では、ランダムに作った完成盤面から、新聞の数独と同じように中心に対して点対称になるよう数字を 2 つずつ取り除きます。取り除くたびに、解が一つのままか、目標の難易度を満たしているかを確認します。
- 初級:問題の数字 38〜45 個。シングルだけで解けます。
- 中級:問題の数字 30〜35 個。シングルだけで解けますが、手がかりが少なくなります。
- 上級:問題の数字 26〜29 個が目安。ロックされた候補、ペア、トリプル、X-Wing のいずれかが必要です。
- エキスパート:問題の数字 22〜25 個が目安。上のテクニックだけでは解けず、高度な推理か仮定が必要です。
数独の解き方テクニック一覧(やさしい順)
| テクニック | 考え方 | このツールでの難易度 |
|---|---|---|
| ネイキッドシングル(唯一候補) | そのマスに入る候補が一つだけ。ほかの 8 つの数字は、同じ行・列・ブロックにすでにある。 | 初級・中級 |
| ヒドゥンシングル(消去法) | 行・列・ブロックの中で、ある数字が入れるマスが一つしかない。そのマスにほかの候補があってもよい。 | 初級・中級 |
| ロックされた候補 | ブロック内で、ある数字が一つの行(または列)にしか入らないなら、その行のブロック外のマスからその数字を消せる。逆向きの推理も成り立つ。 | 上級 |
| ネイキッドペア・トリプル | 同じユニットの 2 マスが同じ 2 つの数字しか取れないなら、その 2 つの数字はユニット内のほかのマスから消せる(トリプルは 3 マスと 3 数字)。 | 上級 |
| ヒドゥンペア・トリプル | ユニット内で 2 つの数字が同じ 2 マスにしか入れないなら、その 2 マスのほかの候補はすべて消せる。 | 上級 |
| X-Wing | 2 つの行で、ある数字が同じ 2 列にしか入れないなら、長方形ができ、その 2 列のほかのマスからその数字を消せる。 | 上級 |
これらのテクニックで解けない問題はエキスパートになります。ソードフィッシュや XY-Wing、チェーンなどの高度な推理か、バックトラックによる仮定が必要で、ソルバーは後者で解いています。
数独ソルバーの便利な使い方
- 新聞や雑誌の問題で行き詰まったとき:入力して、答え全部ではなく「ヒント」を一つだけもらえば、自分で解き切る楽しみが残ります。
- 自作問題のチェック:「問題を入力」モードで「チェック」を押すと、解が一つだけか、どの難易度かが分かります。会報やサークル、授業で配る前に便利です。
- 新しい問題を印刷する:1 ページに 1 問、2 ページ目に解答。授業、高齢者施設の脳トレ、画面を見られない長旅のお供に。
- テクニックを学ぶ:ヒントは推理の理由を説明し、「解く」は必要なテクニック名を表示します。候補数字の表示はペアやロックされた候補を見つける練習になります。
- 友だちとタイムを競う:「テキストでコピー」で同じ問題を送り、タイマーの記録を比べましょう。
よくあるトラブルと対処法
- 雑誌の問題なのに「解がない」と出る:ほとんどの場合、数字の書き写し間違いです。行ごとに見比べてください。重複は赤く表示されますが、重複がなくても一つの誤りで解けなくなることがあります。
- 「解が複数ある」と出る:問題の数字が少なくとも一つ足りません。17 個未満なら必ずそうなります。
- 数字を変更できない:「プレイ」モードでは問題の数字は固定されています。問題そのものを直すときは「問題を入力」モードに切り替えます。
- 貼り付けがうまくいかない:ちょうど 81 マス分が必要です。スペース、改行、区切り記号(| + -)は無視されます。空きマスは 0 または . で表してください。
- プレイ中の問題が消えた:このブラウザのローカルストレージに保存されています。プライベートウィンドウやサイトデータの削除で消えてしまいます。
すべての処理はブラウザ内で行われます。盤面、計算、プレイ中の問題が端末の外に送られることはなく、自動保存もこのブラウザのローカルストレージに残るだけです。制限:通常の 9 × 9 数独のみ対応(キラー数独、対角線数独、16 × 16 は非対応)。理由つきのヒントはシングルまでで、それ以上の手順では解答の数字を直接表示します。
よくある質問
この数独ソルバーはどのように解いていますか?
各マスには、まだ入る可能性のある数字が 9 ビットのマスクとして記録されています。まず確定できる数字(候補が一つしかないマスや、行・列・ブロックの中で入る場所が一か所しかない数字)をすべて埋め、それでも決まらない場合は候補が最も少ないマスの可能性を順に試し、行き詰まったらすぐに戻ります(バックトラック)。アルト・インカラの有名な難問も数ミリ秒で解け、同時に別解がないかも確認しています。
「解がない」「解が複数ある」と表示されるのはなぜですか?
解がない場合は、ほとんどが入力ミスです。数字を一つ書き写し間違えるだけで、重複が見えなくても解けない問題になります。解が複数ある場合は、問題の数字が少なくとも一つ足りないか、問題の作りに不備があります。きちんとした新聞や雑誌の問題は解が一つだけなので、入力をマスごとに見直し、「問題を入力」モードで「チェック」を押して再確認してください。
数独に必要なヒント数(問題の数字)の最小値は?
17 個です。2012 年、ゲイリー・マクガイア、バスティアン・トゥーゲマン、ジル・シヴァリオの 3 人が、コンピューターによる全数探索で、ヒント 16 個では解が一つに決まる問題が存在しないことを示しました。ヒント 17 個の問題は 5 万近く知られていますが、17 個以上あれば必ず解が一つになるわけではなく、数字の配置が決め手になります。
難易度はどうやって判定していますか?
人が解くのと同じように、簡単なテクニックから順に使って問題を解きます。シングル(唯一候補と消去法)だけで解ければ初級(問題の数字 36 個以上)か中級、ロックされた候補・ペア・トリプル・X-Wing が必要なら上級、それでも解けなければエキスパートと判定します。つまり、問題の数字の個数よりも、必要なテクニックのほうが重視されます。
世界一難しい数独はどれですか?
最も有名なのは、フィンランドの数学者アルト・インカラが 2012 年に「世界一難しい」として発表した問題で、問題の数字は 21 個、左上のマスは 8 です。800000000003600000070090200050007000000045700000100030001000068008500010090000400 を読み込み欄に貼り付けてみてください。最初の時点ではシングルが一つもありませんが、ソルバーは数ミリ秒で唯一の解(812753649 から始まる)を見つけます。
当てずっぽうに頼らずに数独を解くコツは?
まずは「スキャン」です。ある数字がまだ入っていないブロックを選び、同じ行や列にその数字があるマスを除外していきます。残りが一マスなら、それがヒドゥンシングル(消去法)です。次に、入る数字が一つしかないマス(ネイキッドシングル)を探します。行き詰まったら候補数字を書き込み(「候補数字を表示」)、ペアやロックされた候補を探しましょう。「ヒント」ボタンを押すと次の数字が入り、シングルで決まる場面ならその理由も表示されます。