数学の話をひとつ。

これは「論証力を決める数学(東京出版)」という本で読んだ話なんですが。
現在ちょっとした机上プログラム(というほどでもない)を組むに当たって、重要になりつつある話なので。

テレビのプレゼントで、「正解」を書いて応募しなければならないものがあるとする。当選者は5人とする。
このとき、番組側は次のどちらの方で当選者を選ぶだろうか。

(1) 応募ハガキの全てからまず正解しているものを抜き取り、その中から5人選ぶ。
(2) 適当にハガキを選び、その人が正解していれば当選とし、外れていれば落選、これを当選者5人になるまで繰り返す。

大学への数学なんぞを読んでいると、「逆手流」なる方法論が載っていて、あまり自分は理解できていないんですが(何度読んでも理解が難しい……)。

上の例において、1を自然流、2を逆手流と大学への数学では呼んでいました。

さて、なるほどこれは重要な話考え方で、どちらを選ぶかで、
処理する量が全然違う

ことになる。

同様に、ある条件を満たしているとき次のソースを読ませる、といったとき、
条件を満たしているかどうかを調べてからソースを読ませるのと、
そのソースに入ってから「ところで条件は満たしていたっけな?」と調べるのでは、読み込む量が異なるわけで、その分の処理スピードに差が出てきます。
これがつもるとやはり山になるわけで。

この辺はプログラマーの方が一番詳しい部分なのでしょうけど。