第22講 数独=ナンプレの自動生成
第1話 数独=ナンプレとは?
数独=ナンプレ=ナンバープレイスとは、
数学者レオンハルト・オイラーが考えたラテン方陣に
アメリカ人建築家ハワード・ガーンズがブロックの条件を加えてつくったパズルをニコリが数独の名で、
掲載してから世界的隆盛を見せるようになった人気パズルです。
日本においては、数独=ナンプレ専門の月刊誌何誌も刊行され、
世界中の新聞に掲載され、世界大会まで開かれパズルとしては、
ルービック・キューブ以来の大流行を見せているといいます。
詳しくは、数独 解き方 数独 コツ 数独 テクニック ナンプレ コツ 確定法の研究
無料サイト
を参照していただきたいと思いますが、簡単にルールだけ確認しておきましょう。
問題例
新次元難問数独自動生成ソフトVer.1に作成させた問題です。
4 | 8 | 2 | 5 | |||||
1 | 8 | 3 | ||||||
1 | 8 | |||||||
3 | 4 | |||||||
6 | 8 | 9 | 1 | |||||
1 | 5 | |||||||
3 | 6 | |||||||
1 | 9 | 2 | ||||||
2 | 5 | 4 | 7 |
空いているセル(空欄)に次の3つの条件の下に1から9までの数字を入れていきます。
@ 行(横)に同じ数字が入ってはいけない。
A 列(縦)に同じ数字が入ってはいけない。
B ブロックに同じ数字が入ってはいけない。
つまり、行・列・ブロックに1から9までの数字を1つずつ入れていくパズルです。
初心者の方にとっては、大変な難問です。
興味ある方は挑戦してみてください。
解答を50行下に掲載します。
4 | 3 | 8 | 1 | 6 | 2 | 7 | 5 | 9 |
1 | 5 | 2 | 9 | 8 | 7 | 6 | 3 | 4 |
6 | 9 | 7 | 4 | 5 | 3 | 1 | 2 | 8 |
2 | 8 | 1 | 3 | 4 | 6 | 9 | 7 | 5 |
5 | 6 | 4 | 8 | 7 | 9 | 2 | 1 | 3 |
9 | 7 | 3 | 2 | 1 | 5 | 8 | 4 | 6 |
3 | 4 | 6 | 7 | 2 | 8 | 5 | 9 | 1 |
7 | 1 | 5 | 6 | 9 | 4 | 3 | 8 | 2 |
8 | 2 | 9 | 5 | 3 | 1 | 4 | 6 | 7 |
今回挑戦するプログラムは、この数独解答を自動生成させるプログラムです。
今回のプログラムに様々な改良を加え、
問題解決ソフトを作り、最終的には新次元難問数独自動生成ソフトVer.1
のような数独問題自動生成ソフトを作ります。
何故、問題解決ソフトが必要かと申しますと、
適当に数字を配置した問題が適切であるかを判断させなければならないからです。
数独の問題は次の2条件を満たさなければならないのです。
@ 解が存在する。
A 別解が存在しない。
この2条件は、相反する条件です。
数字を入れすぎると解がなくなり、少なすぎると解が複数になってしまうからです。
2条件を満たしているかの判定をするのが数独問題ソフトというわけです。
現時点で、新次元難問数独自動生成ソフトVer.1のプログラムソースを
ご覧になってもちんぷんかんぷんだと思いますが、最終的には、皆さんご自身にこの複雑なプログラムを組んでいただくことが、
本講義の最終目標です。
第21講第6話へ 第2話へ
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る