Wednesday, 10 December 2014

ライブラリのバグ

なんか、どうも学生のプログラムがO(n)で、どうしてもなおらないらしい。で、functional java がだめだってことになったんですが、ライブラリを疑うなら、

https://twitter.com/shinji_kono/status/537848011229896705
他人の作ったライブラリにバグがないとは言わないが、バージョンが最新かどうかをチェックして、実証コードぐらいは書こう。

っことなわけですが、どうも、

* ライブラリのバグで、github上の最新なら直っている

というパターンだったらしいです。測定してもらったら、ちゃんとO(log n)だった。M2の学生が見つけたらしい。偉い。

まぁ、いろいろあるなぁ。functional java のコード読んで、特におかしなところはなかったんだが、「既に直っているコード」ならば、それは正しそうには見えるよね。

コードを見て、それがO(log n)かO(n)かO(n^2)かは理解して欲しいところだが、あまり自明でない場合も。特に、Java 8のstreamとか、Haskell とかは見えないですね。なので、実測する方が簡単だと思う。

実際、測定しない最適化は意味ない(プログラミング作法)だから、実証コードをグラフかする手順くらいは持っていた方が良いね。というか授業でやってるはずだし...

ちょっと時間かかったのは残念だったが、まぁ、これで少しは先に進んでくれるのかな。

No comments: