2005-12-03

近況

小学校の教員である母にたのまれコードを書いた. それは筆算を前提とした整数の除算に関するコードで(低学年向けですね), ある指標で指定した "面倒さ" をもつ除算の問題 (N/M の M と N) を 列挙するというもの. "面倒さ" は筆算を実行するためのあるアルゴリズムにおける計算量だと思えばいい. このアルゴリズムは入力によって計算量が(定数倍の範囲内で)変化する. 依頼の意図は, 計算問題プリントの "面倒さ", 計算量を 出題者がコントロールしたいということだった.

母は合うたびにこうした依頼をしてくるのだが, いつも難儀する. コードを書こうとして悩み, ほとほと自分はコードが書けない, プログラミングが苦手な人間だなと実感して悲しくなる. 仕事のプログラミングは規模の制御や堅牢性がもっぱらの課題で アルゴリズム的な難しさは少ない. だからあまり自分の無能を実感せずにすむ. むしろ先のような, クイズに似たちょっとした問題を解く時の方がずっと頭を悩ます. それこそがプログラマの底力とも思えるだけに, できないと悔しい. (今回は除算の数が小さかったので総当りで問いてしまった...)

そんなわけで, そういうちょっとしたクイズのような問題や 様々なアルゴリズムを実装することに興味が沸いてきた. 問題集のようなものでおすすめがあったら教えてください.

普通に各種教科書の問題を解くのがいいのかなあ.