株式会社わくわくスタディワールド

株式会社わくわくスタディワールド

本の紹介:「プログラマのための論理パズル」

わく☆すた,美月です。
今日は,プログラマやそれを目指す人たち,論理的思考力を鍛えたい人たち向けに,面白い書籍の紹介です。ホントは,全部解いてから紹介しようと思っていたのですが,それだと,あと半年ぐらいはかかりそうなので,途中ですが紹介しちゃいます。^^;


   「プログラマのための論理パズル


私の講義では,よく,パズルの問題を出します。
これは,頭のウォーミングアップになるのと,パズルを解く過程は,アルゴリズム問題を解く過程と,かなり似通ってると感じているからです。アルゴリズムを考えるときは,パズルを考える時のように,いろんなパターンを当てはめて試行錯誤しますし,状況を整理して,現実的な解を出すのは,実際のソフトウェア開発の現場とも似ています。
実際,応用情報技術者試験(ソフトウェア開発技術者試験)では,パズルのアルゴリズム自体が出題されることがあります。数独や小町算,数当てゲームなど,パズルとして楽しめる午後問題がいっぱい出てきます。


この本は,プログラマのためのパズルの本です。
結構,歯ごたえのある,難問ぞろいの問題です。でも,いきなり難しい問題が出てくるのではなく,まずウォームアップ問題でやり方を説明してあって,そこから徐々に難しくなるので,無理なく考えることはできます。これを解いてると,電車に1時間乗っていても,あっという間に感じます。問題を細かく分解して順に考えていく必要があり,解くのに時間はかかるので,楽しみながらもあきらめない根気が必要です。


この本が他のパズル本と違うのは,単にアルゴリズムを当てはめれば完全に解ける,という問題だけではなく,正解が確定できない中での現実的な解法を見つけるパズルが載っていることです。こういった問題を,NP困難な問題といいますが,この本の第II部には,現実的な解を求める解法テクニックがいろいろ紹介されています。


現実のプログラミングでは,NP困難な問題はいっぱい出てきます。例えば,航空座席の配置やCPUレジスタの配置の決定などは,NP困難問題です。ですので,こういった問題を解くための解法テクニックを知ると,現実にいろいろ役立てることができます。


プログラマに必要な,論理的思考力を鍛えるためには,とってもいい本だと思います。それに,すぐ読み終わってしまう本と違って,半年ぐらいは十分楽しめますし,お得です。^^;
応用情報技術者試験レベルははるかに超えるますし,試験対策本ではないです。でも,頭を鍛えるのには最適ですし,これが解けるようになれば,応用情報技術者のアルゴリズムは簡単に感じると思います。
ということで,本屋で見かけたら,手にとって1問,試しに解いてみてください。^^