第5講 第4講のプログラムエラー原因探索各アイテムの解説
第5話 全体リスト構造解析Total方式の解説その3
For i = 0 To n_1
For j = 0 To n_1
If p(j, i) = 0 Then
For k = 0 To n_1
If p(k, i) > 0 Then
kh(j, i, p(k, i) - 1) = 0
End If
Next
End If
Next
Next
においては何をしているかは
列の観点から今度はに塗られる色が決定されます。
今回は、とから、7の色と
8の色(この色はすでに塗られているので同じ色を重ねます)が塗られます。
Dim ybs As Byte, xbs As Byte
Dim js As Byte, ja As Byte
Dim ks As Byte, ka As Byte
For i = 0 To n_1
ybs = rn * Int(i / rn)
xbs = rn * (i Mod rn)
For j = 0 To n_1
js = Int(j / rn)
ja = j Mod rn
If p(ybs + js, xbs + ja) = 0 Then
For k = 0 To n_1
ks = Int(k / rn)
ka = k Mod rn
If k <> j And p(ybs + ks, xbs + ka) > 0 Then
kh(ybs + js, xbs + ja, p(ybs + ks, xbs + ka) - 1) = 0
End If
Next
End If
Next
Next
はとても難しいコードですが、ここまでついてきた優秀な皆さんはもうお分かりですね。
同ブロックのとから更に、
に7の色(これ列の条件からすでに塗られているので同じ色が重ねられる)
と9の色が塗られます。
以上を通してに塗られた色は2,4,8,7,9です。
つまり、セルには2,4,7,8,9が入力不可で、
1,3,5,6が入力可能性があることが分かります。
For i = 0 To n_1
For j = 0 To n_1
If p(j, i) = 0 Then
がありますので、全空欄について同様な分析をしているわけです。
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入門へ
本サイトトップへ