第5講 第4講で完成させたプログラムコードの解説
第8話 Ⅱ.そもそもそのキャンセルとは何か
この図から座標(0, 2)の候補数字を考えましょう。
前話で解説した通り赤のセルのリストは{3} 候補数字数 1 でした。
この部分解析を行った理由はオレンジのセルに 2 を代入した際の影響を考えるものでした。
具体的には同じ行・同じ列・同じブロックのセルに候補数字に 2 が入っている場合は外し、
候補数字数も減らすという作業でした。
逆部分解析とは
座標(0, 1)に 2 を代入した結果影響を受けてリスト(候補数字)が変わってしまったものを
元に復元するものです。
赤の単セル解析 = 局所解析をすれば当然元に戻ります。
ですが、私が処理速度が一番速いのではないかと予想している方式による結果は
これです。
順番が{2, 3}から{3, 2}に変わっていますが、
順番は数独に影響を与えませんから気にする必要がないわけです。
むしろ、逆部分解析をやる度に順番が変わることは歓迎すべきことです。
ランダム性が高いほど処理速度は速くなると思っているからです。
不完全なコードですがテキストファイルを示しておきます。
興味関心がある方は上の不完全テキストコードを完全なものにして、
fmut1621@hotmail.co.jp