この世の終わり

date:2001-09-16

ただ今、クロスワードに夢中です。解くほうではなくて、問題を作るほうです。そういうプログラムを作れ、という宿題を課せられたため、仕方なくやっているわけですが、首っ丈であることは間違いありません。

プログラムを完成させた後には、少し変更を加えて「遅いが、メモリを喰わない方法」と「速いが、メモリを大食いする方法」を比較し、レポートを書いて提出します。

速度やメモリは、意外と重要で、実際的な計算可能性を決定することもあるようです。速度については、ハノイの塔という問題が有名でしょう。

台にダイヤモンドを散りばめた三本の棒が立てられ、その一つの棒に純金の中央に穴が開いた円盤が64枚ピラミット状にはめられています。これをハノイの塔と呼ぶことしましょう。このハノイの塔の64枚の円盤を他の棒に移す問題を考えます。ただし、1度に1枚づつ、小さな円盤の上には大きな円盤をのせてはならない、円盤は必ず棒にはめることという条件つきです。バラモンの僧は何代にもわたって、これを続けていて、すべての円盤を他の棒に移し終えたとき、世界の終末が訪れると言われています。

さて、ハノイの塔は理論的には、解くことができます。ただし、時間がかかるのです。手数にして約1800京手。1秒間に1000回、円盤を移動させたとしても約6億年かかります。なるほど、確かに終末が訪れそうです。

クロスワードパズルを作るのには、それほど時間は必要ありません。バグだらけのα版を使ってみた感じでは、数分、時間がかかっても数十分のオーダーで解けそうです。ただし、あからさまなバグつきで提出するわけにはいきませんし、変更を加えた考察も必要です。しかも、考察はコンピュータではなくて、私の灰色の脳細胞で成し遂げなければならないので、メモリも時間も大食いです。提出できるころには、週末が訪れそうです。

Previous topic

動物の本能

Next topic

台風

This Page