第16講 全セルリスト構造解析(全体リスト構造解析)によって数独(ナンプレ)を解く
第1話 1つのセルのリスト構造を自分の頭で考える
第15講で触れましたが、魔方陣の場合リスト構造解析は大変シンプルです。
理由は、全セルが同一のリスト構造を持っているからです。
ところが、数独(ナンプレ)の場合は、列・行・ブロックの条件が付いているため、
セル毎にリスト構造が違います。
魔方陣の場合全セルが同一のリスト構造を持っているため、
リスト構造を表す配列lst(k)は、1次元配列で済みましたが、
セル毎にリスト構造が違う数独(ナンプレ)においては、
リスト構造を表す配列lst(i,j,k)は、3次元配列になります。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 4 | 9 | |||||||
1 | 9 | 3 | |||||||
2 | 1 | 6 | 8 | ||||||
3 | 3 | 8 | 1 | 2 | |||||
4 | |||||||||
5 | 6 | 7 | 4 | 3 | |||||
6 | 6 | 7 | 4 | ||||||
7 | 3 | 1 | |||||||
8 | 5 | 7 |
lst(i,j,k)のi,jはセル位置に対応します。
例えば、lst(1,2,k)なら
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 4 | 9 | |||||||
1 | 9 | 3 | |||||||
2 | 1 | 6 | 8 | ||||||
3 | 3 | 8 | 1 | 2 | |||||
4 | |||||||||
5 | 6 | 7 | 4 | 3 | |||||
6 | 6 | 7 | 4 | ||||||
7 | 3 | 1 | |||||||
8 | 5 | 7 |
の
が対応セルになります。
さて、皆さんこのセルのリスト構造を考えてみて下さい。
といっても、プログラムを考えるのではなく、
自分の頭で考えて頂きたいのです。
数独の3つの条件
① 縦に同じ数字が重複しない
② 横に同じ数字が重複しない
③ ブロックに同じ数字が重複しない
から考えて頂きたいのです。
尚、このページから読み始めた方は、
全セルリスト構造解析と言う名称から難しそうな内容だなと、
感じてしまうかも知れませんが、
前のページをご覧にならなくても、
第2話をクリックして頂ければ、
リスト構造とは何かは簡単にご理解頂けます。
初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba マクロ 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門
数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ