第13講 ベクタの学習
第1話 講義再開に際してのエピソード

さて、約3ヶ月ぶりの講義の再開です。
モニターの故障と数独の開発の難航が災いして、
長らく講義が停止していたことをお詫び申し上げます。
モニターの故障で3週間、残り2ヶ月ちょっとは数独の開発に費やされました。
数独については、コーティング(プログラミングの文章を書くこと)が済んでから、
バグ取りに、1ヶ月以上費やしてしまいました。
最初は、解答を作る段階で2000個に1個の割合で、
数独のルールに従わない不良解答が出てしまう問題で、
原因が分からず2週間も悩まされました。
何しろ2000個中1999個は正常な数独を作るのですから、
原因究明は、困難に思われました。
しかし、問題が発覚してから2週間の終わり頃、
プリントアウトしたコーティングから1カ所の入力ミスを発見しました。
それを訂正すると、200万個数独解答を作らせても、
1個も不良解答はできなくなりました。
次の問題は、問題を作らせる段階で起きました。
VBAのVer.7と完全に同じコーティングであるはずなのに、
プログラムが途中で停止してしまうという問題に遭遇しました。
この問題でも、数日間は悩まされました。
原因は、VBAとC言語の微妙な文法の違いにありました。
原因を解明して、いよいよ完成かと期待したら、
今度は、3題に1題の割合で複数解のある問題を作っていることが判明しました。
数独は、解答は1つでなければならないので、これは大きな問題でした。
コーティングを点検する日々を何日も過ごしました。
いつかの入力ミスが発見され、
複数解のある問題を作ってしまうという不良は、
200題に1題にまで落とすことができました。
ところがその後は、
どのような改良を加えても、一進一退を繰り返し、根本的な改善には繋がりませんでした。
もう永久に原因は、解明できないのではないかと悲観的な気分になっていました。
半ば諦めの心境で、最後の改良を加えました。
何度やってもダメだったので、今回もダメだろうとたいして期待せず検証実験に入りました。
保存できるデータ容量の関係で、1回で120題しか検査できません。
Visual C++で作った問題を保存し、VBAの問題解答プログラムVer.7で検査するからです。
1回目成功、2回目成功、3回目成功と成功を重ねる内に、
ひょっとして今回は、うまくいくのではと一縷の希望が生じてきました。
しかし、最初に成功かと思われたときも9回連続までは成功していました。
したがって、少なくともこの9回は越えないと成功とは言えません。
5回、6回と成功が連続すると、私の心臓はドックンドックンと激しく鼓動しました。
そして、9回目、クリア。これは可能性あり。
10回目クリア。成功か?
しかし、まだ偶然かもしれません。
成功連続回数が20回を超えた頃、
ついに問題を改善できたのでは、と希望が大きくなってきました。
成功回数が30回以上になったとき、
Windows版マルチスレッド対応数独問題作成ソフトが完成したという確信が芽生えていました。
しかし、念のため実験は続けました。
73回の成功を数えたとき、すなわち8760題連続で正常な問題をソフトが作ったことが分かったとき、
実験を打ち切り、その日の午後に早速Windows版マルチスレッド対応数独問題作成ソフト完成、
とこのサイトで報告しました。

ごめんなさい。本当は、今日から講義再開のつもりだったのですが、
思い出話をしてしまいました。
肩こりもまだ癒えていませんので、明日からの予定を話し、第1話は閉めたいと思います。
配列の相当するものは、5つあります。
すでにそのうちの2つは解説しました。
第13講では、配列の1つと考えてよいベクタについて学習して行きます。


第11講第6話へ
  第12講第1話へ 第13講第2話へ

vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ