2013-09-01から1ヶ月間の記事一覧

Project Euler 437(2)

http://projecteuler.net/index.php?section=problems&id=437pを法として2乗するとnになる整数を求めるアルゴリズムがあるのでそれを使い、あとちょこちょこと直したら、57秒になった。

Project Euler 436(2)

http://projecteuler.net/index.php?section=problems&id=436区間を1/Nの幅で分割して近似していて、区間をたくさん飛んだ方が大きいとしていたが、実際には一番大きく区間を飛ぶのはそれより一つ小さく飛ぶのとかぶっていて、それを考慮するとN = 128で収束…

Project Euler 437

http://projecteuler.net/index.php?section=problems&id=43774着。 今朝電車の中で組んだが、ネットブックでは力不足。 夜帰ってきてから動かしてみると、メモリが足りない。多倍長整数を使っているからだ。そこはふるいなので、部分ふるいを使ってみる。ま…

Project Euler 436

http://projecteuler.net/index.php?section=problems&id=43697着。 平日組む時間がなくて、昨日電車に乗っている少しの間にコードを書いたが、なぜか1/2に収束する。 今日電車の中で437のコードを組んで、そのあとにノートを見ていたらミスに気付いた。 近…

Project Euler 426

http://projecteuler.net/index.php?section=problems&id=426121着。 あんなに考えたのに、実は単に検索すればよいだけの問題だった。そして、ナイーブに書くとO(N^2)だが、ちょっとデータ構造を工夫すればほぼO(N)となり、PyPyで2.6sだった。

Project Euler 435

http://projecteuler.net/index.php?section=problems&id=43592着。 Project Eulerはだいたい問題を90度違う角度から見るとよい。しかし、この問題は違う。素直に解けばよいだけ。ただ、Project Euler頻出のテクニックは要る。