数独の解き方と解析ソフト(お爺さんのナンプレ)


Python 数独解析ソフト


Python(パイソン)とは?
 Pythonは1991年、オランダ出身のプログラマーGuido van Rossum氏によって考案されたインタープリター型プログラミング言語です。コードブロックを字下げ(インデント)で表現する文法が特徴で、可読性が高いコードをコンパクトに記述できます。さまざまな用途に利用できる汎用言語として幅広い人気を集め、近年はとくに機械学習の分野で評価が高いようです。
 このPythonを使いVBAに続いて数独解析ソフト、「お爺さんのナンプレ(Ptyhon版)ソルバー」をプログラミングしました。

Python 数独解析ソフト
1.概要
1)機能:
 *数独の問題を入力すれば、瞬時に解答できるソルバー(Pythonによるナンプレ解析ソフト)。
 *自動的にバックアップファイルが作成され、必要に応じ印刷も可能です。
 *.exeファイルですのでPython環境のないWindows PCで動作します。
2)ファイル名、version等: sudoku_verB1.exe   version:B1   5.26MB
3)作成者:(C)お爺さんのナンプレ

2.Download・展開の方法
1)下記URLからdownload
  Python数独解析ソフト
                  (注)以下の解凍・実行までの操作・表示等はPC環境により異なります。
2)操作をやりやすくするために、pysudoku_B1.zipホルダーをdownloadホルダーからdesktopに移動し、すべてのファイルを展開する。
pysudoku_B1.zipをWクリック → pysudoku_B1.zipをWクリック 以下のファイルが表示される。
 @サンプル問題: “Solq.txt”
 A問題(未記入): ”Solq_original.txt”
 BPython数独ソルバー(実行ファイル): ”sudoku_verB1.exe”
 CPython数独ソルバー(取扱説明書): ”sudoku manual_verB1.pdf”    
実行ファイルsudoku_verB1.exeをクリック→ すべて展開 →展開 →展開後、4つのファイルが表示され、実行可能となる。

3.使用方法
1)desktopのメモ帳で9X9の問題入力用txtを作成、File nameは”Solq.txt”。
   
2)問題作成要領
*行1、列1から問題入力。
*空白セルはスペースのままでも、0を入力してもよい。
  
3)sudoku_verB1.exeをWクリック
*問題名を入力(任意)すると、ソルバーの解析結果が表示されます。
(注)実際の表示例は黒色ですが、ここでは見やすいように灰色にしてあります。
     
4)確認がOKであれば、Enterキーを押すと確認及び印刷用”Solqbu_問題名.txt”ファイルがdesktop上に自動作成されます。(例)Solqbu_世界一難しい数独.txt
 *レベル:ソルバーが自動的に4レベル判定、この例ではマニア・レベル(超難問)
 *時間(秒):実行に要した時間、この例では0.257秒(25.7ms)
 *試行係数:ソルバー内の試行係数、この例では6964
5)留意事項
@”Solq.txt”が作成されていないと、次のメッセージが表示されるので作成してください。
  
A解答不能の場合には、次のメッセージが表示されるので問題を確認してください。
  

4.VBA版との比較
 Pythonで組んだ解析ソフトと本HP掲載のVBA版との比較は次の通りです。結論的にはどちらも実用的ですので各人の好みで使用できます。
    
 2つのソフトで「世界一難しい数独」の解析結果を比較すると、クラスはともにマニア級、時間はPytoh版が0.26秒に対してVBA版は7.72秒と30倍Python版が高速です。

   

5.その他
1)本解析ソフトは、個人的趣味で作成されたものでその正確性・実現性・独自性等を保証するものではありません。結果については本HPは一切責任を持ちません。
2)Python初学者が組んだソフトです。理路整然としたプログラムではなく、IFの多用したためにグチャグチャしたプログラムで俗に言われる”スパゲティ・プログラム”と称される代物ですので、Python codeは非公開にしています。