Srini Devadas :問題解決の Python プログラミング

パズルは楽しい

作成日:2020-07-31
最終更新日:

概要

副題は「数学パズルで鍛えるアルゴリズム的思考」

書評を読む

最近、本を読むのが億劫になっているので、Amazon の評を読むことにしている。 そのうちの一つに、本書のよくない点として、「PEP8に従っておらず、Pythonらしいコードではない。」 という指摘があった。PEP8 とはなんだろう。どうやら Python のコーディング規約らしい。 https://pep8-ja.readthedocs.io/ja/latest/ せっかくコーディング規約があるのだから、これを守ることにしよう。

改良したいところ

17 章アナグラム狂のところでは、p.188 でこう述べられている:

まとめると、アナグラムパズルを解く効率的戦略は、アルファベットの各文字に一意な素数を割り当て、 各単語のハッシュをその積で求めることです。このハッシュ値に基づいて単語をソートすれば、 ソートした出力では全アナグラムがグループ分けされます。

後のページには、この戦略に基づくコードが記載されている。ところが、 素数のところは数値リテラルとしてコーディングされている。例:
... = {'a':2, 'b':3, 'c':5, ..., 'z':101}
このようにコーディングするのは、打ち間違いもあって危険である。 素数のところをプログラムによって出したいということを、プログラマであれば当然考えるだろう。 ところが私は Python プログラムが書けない。恥ずかしい。

誤植

p.120 コードの 1. が EMPTYPIECE = 1 となっているが、正しくは EMPTYPIECE = -1 である。 本文では「-1 が yard 中の空のマス目を表します(1行目)」となっていて、これは正しい。 仮にこの EMPTYPIECE = 1 のままプログラミングを進めると、 p.122 で得られる結果の表示が、 B のところだけスペースになってしまう。 この誤植は公開済かもしれないと思い、 https://www.oreilly.co.jp/books/9784873118512/ に行ってみたが、正誤表は見当たらない。

p.225 のグラフのノードで、F が二つあるのは誤り。Q の下にあるのは F ではなく、R である。 この正しい R は Q と X と連結されている。

書誌情報

書 名問題解決の Python プログラミング
著 者Srini Devadas
訳 者黒川 利明
発行日2018 年 9 月 22 日 初版第1刷
発行所オライリー・ジャパン
発売元オーム社
定 価2800 円(税別)
サイズA5 版
ISBN978-4-87311-851-2
その他越谷市南部図書室で借りて読む
NDC

まりんきょ学問所コンピュータの部屋コンピュータの本Python > Srini Devadas:問題解決の Python プログラミング


MARUYAMA Satosi