第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入門へ
本サイトトップへ