この日記の熱心な(?)読者から「連載はどうなったんだ!勝手に止めるなよな!」なんてお叱りの手紙を頂戴しました。そこでちょっと頑張って何か面白いネタはないかと探して見ました。これならばというものが見つかりましたのでまた連載を再開してみます。
コンピュータを使うことにより大概の問題に対処していけることは皆さんよくご存知です。しかしながら万能(ほんとかな)のコンピュータにとっても得意、不得意があるわけです。
数学問題なんかはものによっては簡単ですが全然お手上げのものもあります。また私たち人間が数学問題を解く場合には色々と妙味な手をつくしていとも簡単に行ってしまうようなものでも、ことコンピュータでやらせようとするとなんとも間抜けな手続きを取らせなければならない事が多々です。
微分・積分をコンピュータにやらせるとなるとコンピュータの得意とする逐次反復を利用することになります。今では数式処理を簡単に行う処理系も発表されているようですが、FORTRANやCやBASICでプログラムする場合には今述べたようなことになるわけです。
簡単な例では 1から12345 までの和を求めよ なんて問題は人間ならば N*(N+1)/2 の法則(適切な言葉かどうかは気にしない)を使用して簡単に求めます。でもコンピュータではそんな小難しい法則を云々せずひたすら単純に加算していくようにプログラムすればいいわけです。何しろコンピュータは瞬間風速で解答してくれます。馬鹿なところをスピードで人に対抗しているわけです。
さて、前置きが長くなりました。今読んでいる本に「解ければ天才。算数100の難問・奇問(たかが算数, されど算数)」(講談社, BLUE BACKSシリーズ, 中村義作著)があります。最近は数学オリンピックの問題集もいくつかの出版社から出されています。
この本の書名にちょっと注目してください。「数学」ではなく「算数」とあります。私たちが義務教育で習った「算数」なる教科書は小学校まででした。中学に進学すると「数学」と名前が変わりました。これは今でもそうだと思います(なにしろ小学校を卒業したのはもう?十年前です)。そういえばこの正月に帰省した時です。年老いた母親が、私の小学校時代の通信簿(通知簿とも言いますね)が箪笥の奥からでてきたので記念に持って帰りなさい、と古びたあの当時の私の馬鹿な成績の証明を渡してくれました。算数の成績がどれほどだったかは秘密にしておきます。話しが横道にそれました。つまりこの本の問題は小学校で習う知識だけで解ける問題が詰まっているというのです。実際100門の内90門程度は有名私立中学の入試問題から集められています。
それらの問題に大の大人が挑戦してみてくださいというのがこの本の趣旨です。ざっとみた限りこんなの本当に小学生が解くのというようなものばかりです。長々した前置きとこの本との話題のつながりはつまりこういうことです。本の中の問題は妙手を見つければいとも簡単に解けるものです。でもその妙手が見つからない時は候補となる解答をしらみつぶしに試してみるしかありません。大の大人でも簡単に妙手が見つかるのではこんな本は出版されません。では大人が問題を前にして指をくわえて, 横で子供がさっさと解答するのを見ているしかないのでしょうか? そこでコンピュータの登場です。机の上のパソコン(アソコンとも言いますが)をスーパー電卓として使えば妙手が見いだせぬこのぼんくら頭でも, 巷で天才と呼ばれる小学生坊主(お嬢ちゃんもいるからこの言葉不適切)達に対抗できます。言い替えればこれしか勝つ道はありません。
ということでこの連載では2つの目的を達成できたらと思っています。ひとつは素直に問題に挑戦して頂くこと(このネットには現役の中学, 高校生がたくさんおられますから面白いと思うのですが), もう一つはこれらをパソコンで解かせるにはどうプログラミングしていくのかそのアプローチをプログラミングを習い始めた人に示せたらということです。CにしろBASICにしろ入門書の類のプログラム例にはあまり面白いものがありません。今回のような試みではプログラムも小さいでしょうし手ごろではないかと思っています。
長くなりました。実際の問題提示は次回とします。興味ある人はここに紹介しました本を買ってみてください。