第2講 局所リスト構造解析
第2話 白紙の状態における全体構造解析
皆さんに、局所構造解析をプログラムして頂くために、
第2話では、白紙t
の状態における全体構造解析を説明しておきましょう。
リストを収める配列をグローバル配列として
Dim rlst(8, 8 ,8) As Byte
と宣言します。
何故、3次元配列になるかと思うしますと、
各セル(2次元に動きます)に最大9個の候補数字がリストされる方です。
また、候補数字の個数を納める配列もグローバル配列として、
Dim mx(8, 8) As Byte
と宣言します。
こちらは2次元ですね。
各セルに入る候補数字の個数を納める配列ですから。
rlstとmxは最初に次のように初期化することによって全体リスト構造解析は完成します。
  For i = 0 To n - 1
    For j = 0 To n - 1
      mx(i, j) = 8
      For k = 0 To n - 1
        rlst(i, j ,k) = k + 1
      Next
    Next
  Next
皆さんの頭には
      mx(i, j) = 8
について?が浮かんでいるでしょうか。
最初、
t
すべてのセルに何の数字を入っていなければ、
候補数字個数は9個ではないか?
でもいいんですよ。
配列の添え字は0からはじまるのですから、
0,1,2,3,4,5,6,7,8
で9個ですよね。
ですから、
      mx(i, j) = 8
でよいのです。
上の初期化によって
mx(0, 0) = 8
mx(0, 1) = 8
mx(0, 2) = 8
   ・
   ・
mx(1, 0) = 8
mx(1, 1) = 8
mx(1, 2) = 8
   ・
   ・

mx(8, 8) = 8


rlst(0, 0, 0)= 1
rlst(0, 0, 1)= 2
rlst(0, 0, 2)= 3
   ・
   ・
rlst(0, 0, 8)= 9
rlst(0, 1, 0)= 1
rlst(0, 1, 1)= 2
   ・
   ・
rlst(0, 1, 8)= 9
rlst(1, 0, 0)= 1
rlst(1, 0, 1)= 2
   ・
   ・

rlst(8, 8, 8)= 9

となり、白紙t
状態における全体リスト構造解析が完成します。
以降はセルに数字を入力する度に、
局所構造解析を行って、全体構造解析を修正していけば良いのです。
では、皆さんセルに数字が入力される度に、
局所構造解析をするプログラムを考えて下さい。
20,30分考えても分からない場合は、第3話をクリックすることをおすすめします。
第3話で考え方を説明しています。


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