はじめに 初投稿かつn番煎じです 数独について 数独とは ↑こういうやつ - 3×3のブロックに区切られた 9×9の正方形の枠内に1〜9までの数字を入れるペンシルパズルの一つ - ナンプレともいう https://ja.wikipedia.org/wiki/数独 数独のルール 空いているマスに1〜9のいずれかの数字を入れる 縦・横の各列及び、太線で囲まれた3×3のブロック内に同じ数字が複数入ってはいけない Z3について Z3とは Microsoft Research が開発したSMTソルバ MITライセンス https://github.com/Z3Prover/z3 SMTソルバとは 一階述語論理式の充足可能性を判定してくれる 充足可能(SAT)の場合は充足割り当て解の一つを出力してくれる 充足不可(UNSAT)の場合は出してくれない(そりゃそうだ) 解いてみる 準備 githubからz
![[Python]Z3で数独パズルを解く - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/10d724e6421e9682bb627ac7d2d554a3ba50658c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCUHl0aG9uJTVEWjMlRTMlODElQTclRTYlOTUlQjAlRTclOEIlQUMlRTMlODMlOTElRTMlODIlQkElRTMlODMlQUIlRTMlODIlOTIlRTglQTclQTMlRTMlODElOEYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTE0NTJkNjU4ZTcwNzE5YTI3OWU1OGY5MWVkYzgzZjRh%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaW5hZ2FraTE2OSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YzdjZGIxNThiNWM4NjZlM2M2OTdlZGNkNDExNzgxYTg%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd6648db480e6589e6fbb528de71381a3)