第8講 数独(ナンプレ)作成アプリVer.3に3on3確定と排除を組み込む
第5話 例外規定をコードでいかに実現するか?
02
04
05
も場合もあれば、
02
04
06
の場合もあります。
いかにしたら両方のケースに対応するコードに出来るのでしょうか。
つまり、
011
     と
012
となるケース、
011
     と
025
となるケース、
011
     と
036
となるケース
011
     と
096
となるケースのいずれも含むコードをいかに実現するか、
が問題です。

もし、

011
     と
012
のみのケースしか考えられない場合には、
2on2の解析、すなわち相補確定の解析のコードが直接に使えます。
それは、
      If w = 2 Then '以下相補確定解析ための手続き
        For k = i + 1 To n_1
          w = 0
          For l = 0 To n_1
            If p(j, l) = 0 Then
              If kh(j, l, k) = 1 Then
                xs1(w) = l
                w = w + 1
              End If
            End If
          Next
          
If w = 2 And xs(0) = xs1(0) And xs(1) = xs1(1) Then
                   ・
の部分です。
もちろん、2つを3つに変更しなければなりませんが、
考え方は同じですからどうってことないわけです。

課題の困難性は、
011
     と
096
となるケース
011
     と
025
となるケース、
011
     と
036
となるケースの場合のいずれも包含するにはどうするかです。
座標で表すと、

xs(0) = 1, xs(1) = 4, xs(2) = 5
xs1(0) = 1, xs1(1) = 4, xs1(2) = 5
xs2(0) = 1, xs2(1) = 4
のケースと
xs(0) = 1, xs(1) = 4, xs(2) = 5
xs1(0) = 1, xs1(1) = 4, xs1(2) = 5
xs2(0) = 1       , xs2(1) = 5
のケースと
xs(0) = 1, xs(1) = 4, xs(2) = 5
xs1(0) = 1, xs1(1) = 4, xs1(2) = 5
       xs2(0) = 4, xs2(1) = 5
のケースの3ケースをいかに包摂するかです。
ここまで書くと、どうしたらよいかが見えてくるのではないでしょうか。
次話に解答例を示しましょう。

第4話へ 第6話へ
004

eclipse c++ 入門
魔方陣 数独(ナンプレ)で学ぶ VBA 入門
数独(ナンプレ)のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ