センスの良さが光る理系向けアルゴリズム集

奥村晴彦+首藤一幸+杉浦方紀+土村展之+津留和夫+細田隆之+松井吉光+光成滋生,
「Javaによるアルゴリズム事典」,
ISBN 4-7741-1729-3,
技術評論社,
2003.6.1 第1刷.

 出版不況だそうである。もう,日本全国あっちこっち,どの業界でも景気の良い話なぞ聞こえてこないから,そう聞かされても「ああ,またか」としか感じなくなっている。先日のNTV系「Wake Up」を見ていたら,こーゆー状態を「不況ボケ」というのだそうな。「不況不感症候群」,と言い換えた方がわかりやすいかしらん? どっちにしろ,不況だ不況だと騒いでも,それは誰しも同じで,聞く耳を持つ余裕なぞどこにもないってことである。
 ましてや,今まで顧客をないがしろにしてふんぞり返っていた出版業界なんぞ,今の都市銀行並に,同情どころか憎悪の対象になっているといっても過言ではない。こちとら,マンガと活字に目覚めてから既に20年以上のキャリアを持つが,つい最近に至るまで,「お客様」として遇された覚えが全くない。ガキだったせいもあろうが,頼んでおいた新刊マンガが届くまで,発売後半年待たされたり(さすがにこの本屋はその後潰れた。ザマミロ),発売されて入荷されたとおぼしき新刊本を棚に探してもなく,店員に聞くと,決まって「棚になければ売り切れです」と言われる。あーのーなー,棚の下の引き出しには並びきれない在庫が入っているだろう,ちったぁ確認しろよこの馬鹿店員っ!と舌打ちする場面は今でもたまにある。さすがに大手書店では,在庫確認ができる端末機を設置するようになってきているが,これは顧客サービスというよりも,店員減らしのためなんだろうと,ゲスである私は勘ぐっている。ま,虐げられた者に特有のヒネクレが入っていることは否定しないけどさ。
 ・・・とまあ,これは小売り段階でのことであるが,出版社側にも問題はある。売る努力,つまり営業努力が足りないんじゃないの?と思えることが多いのである。自社から出版する本にはなにがしかの長所を備えており,それが読者のニーズに応えるものであると,本当にそう思って売り出しているのだろうか,疑問に感じることが多いのである。特に理工学書は「理工系の大学で教科書として採用される程度の売り上げがあればいーか」と,軽んじられていると思えてならない。
 確かに,数式一つ本文に入っただけでも忌避する読者が多数存在していることは否定しない。しかし,逆に言えば,忌避しない,多数派ではないかも知れないがそこそこのマスはあるマーケットに絞った営業努力をすべきである。
 本書に関して言えば,出版元に「素晴らしい本ですよ,是非買って下さい」という努力が,今のところ全く見えない。勿論,「コンピュータアルゴリズム事典(Pascal)」「C言語による最新アルゴリズム事典」をバージョンアップする形で本書を出版したということは,好評であった前作にも増して良書になった,だから売れるだろうという目論見が,ある程度はあったのだろう。しかしどーも,大ヒットを飛ばしてやろという意気込みが感じられないのである。しかし,本書は,特にツールとしてのプログラミング技法が不可欠の情報系大学学部・学科の学生さんには間違いなくお勧めできる優良書であり,そーゆー市場ではヒットする書籍であると断言できるものである。
 優れている点は3つある。まず「取り上げる項目が厳選されている」ということがある。次に「各項目で示されている説明やプログラムが簡潔かつ要領を得ている」ということ,そして「参考文献が充実している」という3点において,バランスの取れた優良書なのである。
 まず,項目とその説明及びプログラムについて述べる。前作に比べて新規に25項目追加されていること,全体を通じて項目の解説が改良されていること,この2点において著者の良心を感じられる。勿論,削られた項目も数は少ないが存在するが,書籍全体としてはページ数が増加しており,全体のバランスと出版上の問題等があってやむを得ない措置だと思える。そこを除けば大幅な改良が施されたと言える。言語がCからJavaに変わっていることを除けば,シンプルかつ読みやすく短いコードがちゃんと印刷され,著者のサポートページではソースが公開されていることもあり,もう至れり尽くせりのサービスがなされている。これ以上の解説を望むのであれば,本書に示されている参考文献を自分で当たるべきである。
 そして,項目毎に付けられた参考文献リストも,ちゃんと新版があればそれに差し替え,別の文献が見つかればそれも追加されている。各項目の改良は参考文献にまで及んでいるのである。
 前作も良書として各方面で絶賛されていたが,本書もそれに勝るとも劣らない,もはや,望むべき事は全て盛り込まれている最高傑作である。
 にもかかわらず,技術評論社のこの説明ページは何事であるか。ソースコードの配布まで著者にやらせて,自分のところでは通り一遍の自社データベースへの追加だけで,前作と比べて改良された点の説明なぞ皆無である。編集者は何をしているのだ。あんたは印刷所にファイルを持っていっただけなのか。目次をただずらーっと並べるだけなのか。櫛ソート,群,雑音,算術幾何平均,巡回セールスマン問題,数値の書式,整数の平均値,楕円曲線暗号,中国剰余定理,2のべき乗,ビット入出力(入魂の出来!),フラクタル次元,分枝限定法,ユリウス日,離散対数問題,binary splitting法(入魂の出来!),FFT乗算法,FORTRAN,Gauss-Legendreの積分公式,Legendre記号,Lorentz分布,MD5,Mersenne Twister,Rijdael,RSA暗号っていう新規に追加された項目に○印ぐらい付けたっていいじゃないか。大体こんなこと読者にやらすなよっ!(これが言いたい) 貴重な日曜日の午前中がこれで潰れてしまったじゃないかよっ!(もっと言いたい)
 ということで,あてにならない出版社と,自己宣伝が極めて控えめの著者に成り代わって声を大にして言いたいのだ。
 この「Javaによるアルゴリズム事典」は,前作「C言語による最新アルゴリズム事典」を単にJavaで書き換えただけの(それだって大変な労力だが)ものではない。新規項目が追加され,既存項目の解説やプログラムが改良され,参考文献も充実した,最高傑作である。複数の言語をそこそこ使いこなせているが,どーも自分のコードは泥臭くって,余計なことをしでかしているのでは,と一抹の不安を隠せない上級者には,本書が示してくれるセンスの良いプログラムが最良のお手本となることは間違いない。また,これから自分のプログラミングスキルをステップアップさせたい中級者には,ここで述べられているアルゴリズムの解説が役に立つこと必定である。そして,これからJavaプログラミングを始めようかという初級者には,配布されているソースコードをコンパイルして,自分なりにあれこれいじり倒して経験を積んで欲しい。
 ここで正直に告白するが,わしはプログラミング教育をそこそここなしてきた教師であるが,ここまでセンスの良いすっきりとしたプログラムを書く自信が今もって,ない。これはわしにその能力が欠けているからであるが,ぶっちゃけて言うと,わし以外の教師だってどれほどのセンスをお持ちであるか,かなり疑問である。従って,もし,どっかの情報系学部・学科でプログラミング教育を受講している学生さんが,「先生のプログラムは下手くそではないか(間違ってはいないけど)」という疑問を持ったら,本書を一読して確認されることを望む。
 なお,本書の著者は,単著であった前作を著した奥村晴彦ほか,7名となっている。実際,誰がどこを担当したかはつまびらかでないが,全体的には完全に前作同様,奥村テイストで貫かれている。もし,貴方が奥村ファンであるなら,本書はその期待を裏切らないものになっている。安心してご購入されたい。


by T.Kouya

←戻る