Sudoku Flow
数独百科事典 · 数学とコンピューター

コンピューターは数独をどう解くのか

更新日:2026-10-05

バックトラッキング

ソルバーは空きマスにルール上入れられる数字を試し、そのまま進みます。どの数字を選んでも解にたどり着けない場合は、以前の選択を取り消して別の数字を試します。入れられる数字が最も少ないマスを先に選ぶと、探索を大幅に短縮できることがよくあります。

出典: Wikipedia: Sudoku solving algorithms, Peter Norvig: Solving Every Sudoku Puzzle

完全被覆とDancing Links

数独は完全被覆問題として表し直せます。各マスと、各行・列・ブロックの各数字が、それぞれちょうど1回ずつ満たされるように数字の配置を選びます。クヌースは2000年11月の論文で、バックトラッキングを用いる自身のAlgorithm Xを効率よく実行する方法であるDancing Linksを説明しました。これを数独の完全被覆モデルに適用すると、問題のすべての解を素早く見つけられます。

出典: Wikipedia: Sudoku solving algorithms, Knuth, Dancing links (arXiv cs/0011047, 2000)

ランダム探索

一部のプログラムは盤面をランダムに埋めてから、焼きなまし法や遺伝的アルゴリズムなどの手法で数字を入れ替え、ルールに反する箇所を減らします。これらは別のアプローチとして研究されてきました。どれほどうまく機能するかは、プログラムと問題によって異なります。

出典: Wikipedia: Sudoku solving algorithms

人間のように考えるソルバー

ヒントエンジンの役割は異なります。答えを見つけるだけでなく、人がたどれる次の手順を示します。本アプリのエンジンは、ヒドゥンシングルなどの最も簡単なものから、チェーンやほぼロックされた集合(ALS)などの最も難しいものまで、人間が使うテクニックを決まった順序で試し、数字の確定につながる最初のテクニックを使います。難しいテクニックでは、まず候補を除外します。その問題で使った最も難しいテクニックによって、アプリ内での問題のレベルが決まります。

出典: ナンプレの難易度ごとに必要な解き方

関連項目

Related articles

出典

すべての記事 →

ナンプレアプリのアイコン

こんな問題をもっと解いてみませんか?

私たちは、iPhone、iPad、Mac、Android向けのナンプレアプリも開発しています。広告は一切なく、オフラインでも遊べます。ヒントを使うと、数字を入れるだけでなく、そのマスを解くための解法を説明します。

Sudoku Flowは、このサイトでおすすめしているナンプレアプリの開発元、Rubigo Gamesが制作しています。