#排除原理

#排除原理とは、

A C

B D

対象数字(例えば3)が
AB列にはAまたはBのみ
CD列にはCまたはDのみ
(くどいようですが本サイトでは縦列を単に列と呼びます。
また、横列を行と呼びます。)

にしか入る可能性がない場合、

A C

B D

列AB、列CD、行AC、行BDのライン排除が
発生することを指しています。
つまり、対象数字が3である場合、

には3がはいらない事態を#排除といっている訳です。
何故、#かと申します後排除しているラインが、

A C

B D

#状になっているからです。
ニコリでは、この#排除原理を井桁理論と呼んでいます。
何故#上に排除が起きるのでしょうか。
対象数字を3として理由を説明しましょう。
もし、Aに3が入るとすると、
行排除から、Cには3は入りませんから、
CD列にはCまたはDのみが入るの前提条件から、
Dに3が入ることが確定します。
また、3がBに入る場合にも同様にして
3がCに入ることが確定します。
対象数字(例えば3)が
AB列にはAまたはBのみ
CD列にはCまたはDのみ
にしか入る可能性がない
という条件下では、3はAとDに入るか、
BとCに入るしかないのです。
つまり、対角線上に入るしかないのです。
いずれも場合も列と行のライン排除から、
#排除が発生します。

条件は
対象数字(例えば3)が
AC行にはAまたはCのみ
BD行にはBまたはDのみ
にしか入る可能性がない
と変更しても同様に#排除が発生します。

では、どんな場合に

A C

B D

対象数字(例えば3)が
AB列にはAまたはBのみ
CD列にはCまたはDのみ
にしか入る可能性がない
または
対象数字(例えば3)が
AC行にはAまたはCのみ
BD行にはBまたはDのみ
にしか入る可能性がない
という条件が生じるのでしょうか。
いろいろなケースがあります。
基本は
① リスト絞り込み法から
② ライン排除とブロック排除から
③ 相補確定の原理から
の3つですが、その組み合わせもありますから、
多くのケースがある訳です。
では、具体的な事例を見ていくことにしましょう。

以下の事例は説明のための事例で、
答えが1つであるという数独の条件は満たしていません。
つまり、解が複数存在します。

事例Ⅰ

5
1 4 9 7
2 8 5

1
4
2 4 5
7 9
8 1 2 6

#排除が発生しています。
なぜですか。
答えは30行下。



























5
1 4 9 7
2 8 5

1
4
2 4 5
7 9
8 1 2 6

リスト絞り込み法によって、リストを絞ってみてください。
すると

5
1 3,6 4 9 3,8 7
2 8 5

1
4
2 4 5
3,6 7 3,8 9
8 1 2 6

ですから、
リストが3と6の方は相補確定の原理から、
この2つのセルからなるセル(ます)群には3と6が入ることが確定します。
リストが3と8の方は相補確定の原理から、
この2つのセルからなるセル群には3と8が入ることが確定します。
ですから、

A C

B D

対象数字(今の例では3)が
AB列にはAまたはBのみ
CD列にはCまたはDのみ
にしか入る可能性がないことが分かります。

5
1 3,6 4 9 3,8 7
2 8 5

1
4
2 4 5
3,6 7 3,8 9
8 1 2 6

には3は入らないことが確定します。



事例Ⅱ

7 3
4 9
2 6 1
5
8
6 2 5
3 4
1 9 8

さあ、皆さん考えてみてください。
どうして、#排除になりますか。

答えは30行下。





























7 3
4 9
2 6 1
5
8
6 2 5
3 4
1 9 8

左列はリスト絞り込み法から

7 3
3,8 4 9
2 6 1
5
8
6 2 5
3,8 3 4
1 9 8

3と8のみがリストされます。
相補確定に原理から、
AとBのどちらかに8が入ることが確定します。
右列はどうでしょうか。

7 3
3,8 4 9
2 6 1
5
8
6 2 5
3,8 3 4
1 9 8

8のライン排除とブロック排除によって、
縦列に注目すると、

のどちらかに8が入ることが確定します。
以上より、8の#排除が生じます。


リスト絞り込み法へ 研究例題1へ


必勝法

数独 ナンプレ 解き方 コツ 解法 難問 テクニック 研究


数独 フリーソフト 数独自動生成無料アプリ 難問 作成 プログラム


魔方陣 数独で学ぶ 初心者のための VBA 入門 基礎から応用まで

eclipse java 入門

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
本サイトトップへ