というのが分かりますが,上記の解法では分かりません. (確率は低くなりますが,0とはなりません)
このような問題を解くには,直感的にはPrologによるプログラミングがやりやすいと思います.
(このプログラムは,今はjavaで書いています) ( Prologに関する資料 (ppt 125kbyte) )
例えば,既に開いたマスに「2」と書かれていて,その周りに5つのまだ開いていないマスが在る場合,爆弾の配置は,5*4/2=10通りあります.そのすべてにおいて,それ以外の開いたマスの数字と矛盾しなければ,1つの可能性として採択します.そして全ての採択された可能性の中で,上記のような確率的な処理を行い,最も可能性の低いマスを開ける,という解法が恐らく完全でしょう.
この可能性の列挙には,Prologが適していると思っています.全く調べていないですが,恐らく,もっと簡単な解法もあると思いますが・・・