アーサー・ホイットニーのワンライナー Sudoku ソルバー (2011)
(dfns.dyalog.com)数独問題を解くアルゴリズム
-
数独問題の説明
- 数独パズルは 3×3 グリッドの 3×3 ボックスで構成され、各セルは空であるか、1 から 9 までの数字を含む。
- 各 3×3 ボックス、9 つの行、9 つの列には、重複なしで 9 つの数字が含まれていなければならない。
- 例題と解法が提供されている。
-
アルゴリズム概要
- 行列をベクトルとして処理し、行・列・数独の領域をインデックスベクトルで表す。
- パズルの基本チェックを行い、可能な要素をフィルタリングして解を見つける。
- セルが空なら次のリストへ進み、セルに複数の数字が含まれる場合は最も狭いグループから選んでリストに追加する。
- すべてのセルが 1 つの数字を含めば、解が見つかったことになる。
-
技術的ノート
- Veli-Matti Jantunen が提供したソリューションで、数独の長方形を表すために ⍺ を使える。
- 結果はすべての解のベクトルを返し、解がなければ ⍬、エラーがあれば '' を返す。
- アルゴリズムはシンプルで、行列をベクトルとして処理し、可能な要素をフィルタリングして解を見つける。
-
別のアプローチ
- David Crossley と Arthur Whitney による代替コーディングが提供されている。
- さまざまなコーディングスタイルとアプローチが説明されている。
-
例と活用
- 数独問題を解くさまざまな例が提供されている。
- 数独問題を読みやすくするために、内部ボックスを分離する関数も提供されている。
GN⁺のまとめ
- 数独問題を解くためのさまざまなアルゴリズムとコーディングスタイルが紹介されている。
- 数独パズルは、論理的思考と問題解決能力を高めるのに役立つ。
- さまざまなアプローチによって、問題解決の柔軟性を高められる。
- 数独と似た機能を持つパズルとしては、Kakuro、KenKen などが勧められている。
1件のコメント
Hacker News の意見