もしかすると読者の方の興味は、はやりのアルゴリズムや汎用的なアルゴリズムを知ることにあるのかもしれません。しかし、今回は、いわゆる「典型的なアルゴリズム」を用いずに進めていきたいと思います。

 なぜ典型的なアルゴリズムを用いないのか。それは、典型的なアルゴリズムばかりを先に覚え、それだけでTopCoderなどを戦っていこうとした場合、それに少しでもそぐわない問題が出た場合に、まったく太刀打ちできなくなってしまうことを避けるためです。

http://www.itmedia.co.jp/enterprise/articles/0910/10/news003.html

護身といっても、手裏剣で身を守れとか、日常生活で真剣を持ち歩け、などということではない。
普段から手裏剣を持ち歩いたり、刀を携帯するような者は、そもそも、その段階で現代の武人として三流以下である。
いや、それどころか、社会人としての常識を逸しているという点で、人間失格だ。
徒手だろうが、武具を扱うものだろうが、武術・武道の研鑽による現代の護身術とは、稽古によって学んだ「先」や「間積り」、「位取り」などという、武術・武道の根源的な理合によって、自分と自分の周りの人々を守ることである。
逆に言えば、「先」や「拍子」、「間積り」や「位取り」などといった理合を、頭と体の両方で理解していない者が、表面的な技を100も200も覚えたからといって、あるいは武器のたぐいをいくらもてあそんだからといって、護身術としては、何の役にもたない

http://saitamagyoda.blog87.fc2.com/blog-entry-198.html