一部で話題?の「タムタムの法則」について、ちょっと説明を。
昔々、無人島に漂着した不幸な家族:ロビンソン一家(フローネという名の少女
他)がいました。その後暫くすると、その島に更に2名ほど漂着しました。その中にはタムタムという名の少年がいて、歳が近いフローネと仲良しになりました。
ある日タムタムが湖の近くを歩いていると、沢山の鳥がいるのを見つけました。勿論この鳥は、大事な食料となる獲物です。早速、狩りをするためにタムタムはロビンソン一家に鳥のことを報告しに行きました。
タムタム「湖に鳥がいっぱいいたよ」
フローネ「何羽くらいいたの?」
タムタム「だから、いっぱいいたよ」
フローネ「だから、何羽いたのよ?」
タムタム「だから、いっぱいだってば…」
そう、タムタムの世界では「0、1、2、3、いっぱい」という数しか存在しなかったため、このときの鳥の数は間違いなく「いっぱい」なのだ。その理由は、こうだ。
タムタムたちの部族が食べていくために捕獲する鳥の数は、1回の狩りで1羽か2羽だった。つまり、獲物の鳥の数は、
- 食事ができない。
- 何とか食事ができる。
- 食事ができる。
- 明日も食事ができる。
- いっぱい食事ができる。
- いっぱい食事ができる。
- いっぱい食事ができる。
となり
※、4以上は区別の必要がないため「いっぱい」だというのだ。
さて、記述された方法で忠実に処理を行うコンピュータの世界でも、似たようなことがある。
- ある処理を行うときには、その処理方法を1回記述する。
- 同じ処理を2回繰り返す場合は、同じ処理方法を2回記述する。
- 同じ処理を3回繰り返す場合は、同じ処理方法を3回記述する。
- 同じ処理を4回繰り返す場合は、同じ処理方法を4回記述する。
- 同じ処理を5回繰り返す場合は、同じ処理方法を5回記述する。
ってをぃ、勘弁してくれ。「いっぱい」の処理をこなすために処理を「いっぱい」記述するなよ。同じ処理を「いっぱい」するなら、「繰り返す」と記述してくれ。例えば、
- ある処理を行うときには、その処理方法を1回記述する。
- 同じ処理を2回繰り返す場合は、同じ処理方法を2回記述する。
- 同じ処理を3回繰り返す場合は、同じ処理方法を仕方なく3回記述†する。
- 同じ処理を4回繰り返す場合は、同じ処理方法を4回繰り返すと記述する。
- 同じ処理をn回繰り返す場合は、同じ処理方法をn回繰り返すと記述する。仮にnとして0や2の値をとり得るとしても、値が不定の場合はn回繰り返すと記述する。
つまり、「1、2、3、いっぱい」なのだ。1回の処理なら、1回だけそのまま書けばよい。2回の処理でも、2回同じ内容を書けばよいだろう。しかし「いっぱい」繰り返すなら、そのまま書かないで工夫するべきなのです。
これが俗にいう「タムタムの法則」
‡です。
ということで、今回も複数回の面倒な処理をこなしていくために
ちょっと工夫したという訳です。
※ 正確なエピソードは覚えていません。覚えているのは「1、2、3、いっぱい」という数え方だけです。
† 3回目から「いっぱい」だという主張も多い。
‡ ごめんなさい。そんなことを言ってるのは俺だけです…。
● 家族ロビンソン漂流記 ふしぎな島のフローネ