ずいぶん前の話になりますが、ある業務プロクラムの作成に関与していたとき、数字を千円単位で四捨五入する必要が出てきました。そのとき、プログラマーの人が書いたコードは、私たちが通常行っている四捨五入のルーティンとは全く違っていました。
私たちが千円単位で四捨五入するとき、まず百の位の数字を見て、その数字によって切り捨てにするか切り上げにするかを判断します。これがいわゆる条件分岐というヤツです。エクセルでいうところの「If節」ですね。ところが、コンピューターでこれをやろうとすると、時間はかかるし、リソースも喰う上に、おまけにコードも長くて見にくくなってしまうなど、何一つ良いことがありません。
実は、コンピューターでの四捨五入は、足し算と切り捨ての組み合わせで行います。上の例でいえば500円を足して千円以下を切り捨てるのです。こうすれば、私たちのやり方とは違いますが、四捨五入したのと同じ効果を得ることができます。しかも、相手はコンピューターですから、足し算なんかは得意分野で、切り捨てに至ってはまさに機械的作業、コードも見やすく簡単で一石三鳥です。
初めてこのコードを見たときは、プログラマーでもなんでもない私にとってはまさに衝撃的でした。とにかく圧倒的な合理性とシンプルさを兼ね備えていて、そこにはもはや「美」さえ感じられました。今思えば、これがコンピューターに興味をもったキッカケだったのかもしれません。
時代は変わり、今やコンピューターと私たちの生活は相互にリンクしていて、切り離すことができなくなっています。正直、このトシになるともう腐れ縁のような気がしないでもないですが、あの頃の新鮮な気持ちを思い出して、もうちょっとだけ付き合っていこうと思います。
ちなみに、上の話を鵜呑みにしてそのままコード化すると、負の数が出てきた途端にすべての「美」が崩壊しますので注意してください。その時は条件節を噛ませることを忘れずに。
埼玉本部 吉田
確定申告お疲れ様でした。
今シーズンも我が家は、年末から随分滑ってきました!
さすがに二月後半からは、それどころではなくなりましたけど((+_+))
今年初めて、市のスキー協会が主催している1泊2日のスキーツアーに、
娘だけで参加。
スキーは娘が保育園からのお友達家族に連れられ、1年生?から滑り始め、
昨年Jr2級を取得して、スキーには自信があったことも要因だと思いますが、
出発するまでは不安げだった娘も、スキー場に到着する前にはお友達もでき、
楽しんできたみたいです。子供の適応力ってすごいって改めて感心。
そして、参加したスキーツアーで、まさかのJr1級をゲット!
スキー協会の人に4年生で1級とれたなんてっと褒めて頂き、
鼻の下を伸ばし、嬉しそうに帰ってきた娘でした。
今回のうれしい気持ちを、スキーに限らず、次の新たなチャレンジの糧に
してほしいなと思いました。
そして、娘に負けないよう私も日々頑張らなくてはいけませんね(^_^;)
茨城本部 香取