2013-09-01から1ヶ月間の記事一覧
http://projecteuler.net/index.php?section=problems&id=437pを法として2乗するとnになる整数を求めるアルゴリズムがあるのでそれを使い、あとちょこちょこと直したら、57秒になった。
http://projecteuler.net/index.php?section=problems&id=436区間を1/Nの幅で分割して近似していて、区間をたくさん飛んだ方が大きいとしていたが、実際には一番大きく区間を飛ぶのはそれより一つ小さく飛ぶのとかぶっていて、それを考慮するとN = 128で収束…
http://projecteuler.net/index.php?section=problems&id=43774着。 今朝電車の中で組んだが、ネットブックでは力不足。 夜帰ってきてから動かしてみると、メモリが足りない。多倍長整数を使っているからだ。そこはふるいなので、部分ふるいを使ってみる。ま…
http://projecteuler.net/index.php?section=problems&id=43697着。 平日組む時間がなくて、昨日電車に乗っている少しの間にコードを書いたが、なぜか1/2に収束する。 今日電車の中で437のコードを組んで、そのあとにノートを見ていたらミスに気付いた。 近…
http://projecteuler.net/index.php?section=problems&id=426121着。 あんなに考えたのに、実は単に検索すればよいだけの問題だった。そして、ナイーブに書くとO(N^2)だが、ちょっとデータ構造を工夫すればほぼO(N)となり、PyPyで2.6sだった。
http://projecteuler.net/index.php?section=problems&id=43592着。 Project Eulerはだいたい問題を90度違う角度から見るとよい。しかし、この問題は違う。素直に解けばよいだけ。ただ、Project Euler頻出のテクニックは要る。