パズルをパソコンで解くプログラムにハマッテしまった。まだまだ初心者なのであまり高級なことはできないのであるが、「再帰」という手法を用いれば複雑そうなことが意外と簡単にできる。 「再帰プログラム」とは、プログラムの中で自分自身を呼び出すプログラムのことである。 自分が自分自身を呼び出す、とはちょっとややこしいように思えるが、基本的にはそう難しいものではない。だが、ちょっと凝った使い方をしてプログラムの流れを追いかけていると複雑な迷路に入り込んでしまう。なんだか高度な思考をしている気分にはなれるのである。 プログラムを書いてみてもおもしろくないので、以下 「再帰」的な創作話をしたててみた。 課長に呼ばれて仕事を手伝うように言われた。 「何をすればいいんでしょうか?」 「今から指示を出すから、このメモにしたがってくれ。間違えるなよ」 渡されたメモには次のように書かれていた。
『変な内容だな?』 と思う間もなく 「指示(5)」 という声が飛んできた。『指示(5)? 指示(3) が 3×2×1×1 だから、指示(5) は 5×4×3×2×1×1 のことだな。これくらいなら小学生でもできる。ただ学生時代、数学のテストで満点を取ったことが一度もなかったのは簡単な計算ミスをよく犯すためだということは自分でもよくわかっている。電卓を使うことにしよう』 「120です」 「よろしい」 このような指示を2、3出された後、 「よし、今度はこれにしたがってくれ。間違えるなよ」 と言って、次のメモを渡された。
『何だ、これは?』 と額にしわを寄せていると、またまた 「指示(5)」 という声が飛んできた。 『指示(5)は n=5であってnが0ではないので 5×指示(4) ということだな。 指示(4)は n=4であってnが0ではないので 4×指示(3) ということだな。ということは結局、指示(5)は 5×4×指示(3) ということだな。以下同様なので、なんだ、さっきと同じことじゃあないか』 「120です」 「よろしい。これが ”再帰的指示” というものだ。いままでは準備体操だ。これから仕事に入る。間違えるなよ」 新しいメモは次のものである。
『急にややこしくなったなー』 と思っていると、またまた 「指示(5)」 という声が飛んできた。 『えーと、k(5)=1と仮定して、??? ん? なんだ ?????? 』 もたもたしていると 「どうした!」 という課長の催促。 「ちょ、ちょっと待ってください、課長は答えを知っているんですか?」 「答えがわからんから君を呼んだんじゃあないか。まあ、今日中に応えてくれればいい。間違えるなよ。頼んだぞ」 もはや課長は他の書類に目をやっている。 『なんなんだよ。結局、課長ができなかったから俺にまわしたんじゃあないか。これがいったい何の役に立つというんだよー』 とぶつぶつ言いながら自分の机に戻ってきた。でも、放っておくわけにもいかないしなー。 どうも自分でもよく判らなくなってしまった。たぶん、9と応えておけばいいんだと思うんだけど???。 私のまずいプログラムは、このような(もっと込み入った)ものだらけで、自分で自分を複雑にし一日中迷い道をさまよって悩み楽しんでいる。 我ながら、世の中にはおかしなことを考える人もいるものだ。もっとも、生きていながら生きることについて考え、物事を複雑にして悩み楽しむのが生きるということなのだろうか。時に再帰は、無限のループに陥り永遠にそこから抜け出せなくなる危険をはらんでいる。 (2004. 6. 3)
|
【練習問題】 次の文を読み、問に答えよ。 何かを言うことは、それについて言うほどの価値があると思っていることを自分が認めることであるから、あまりにも当然なことを口にすることは自分のレベルがその程度であることを明らかにすることになるのでめったなことは言いたくはないのであるが、だが自分のレベルがどの程度であろうが、他人からどう思われようが、そんなことを気にして生きる必要もない、ということもまたその通りであるとも思うので、あえてこのようなことを言うのである。 問. ”…、あえてこのようなことを言う…” の ”このようなこと ” とはどのようなことでしょう。 |