2013-04-01から1ヶ月間の記事一覧
http://projecteuler.net/index.php?section=problems&id=42577着。 簡単な問題なのに、見落としがあって2時間以上かかってしまった。F(10^4)が合っていてもF(10^7)が合わなかった。
http://projecteuler.net/index.php?section=problems&id=42426着。 数独の時と同じようにしらみつぶしに調べればいいだろうと思っていたが、予想以上に時間がかかる。何問かどうしても答えを出すのに時間がかかる問題が出てきた。それは、手で途中まで解い…
例えば素因数分解を与えて約数を全て列挙するコードを書きます。こんな感じでしょうか。 def pows(n, e): yield 1 q = 1 for _ in xrange(e): q *= n yield q def divisors(fs): if not fs: yield 1 else: p, e = fs[0] qs = pows(p, e) for n in divisors(f…
Project Eulerの問題の難易度としては解いた人の数が使われますが、これよりも最初のほうの人が解くまでにかかった時間のほうが実態に合っていると思います。ここでは、Problem304〜422の50人解けるまで時間を調べてみました。特に上のほうは100番台レベルで…
http://projecteuler.net/index.php?section=problems&id=42363着。 きのう簡単なところがどうしてもうまく書けなくて。 そこが書けたら、あとはふつうに高速化するだけだった。 たぶん一番時間がかかっているあそこを工夫すれば速くなると思うんだけどな。
Problem 1を考えます。ふつうに書くとこんな感じです。 N = 10 ** 8 # オリジナルは1000 print sum(n for n in xrange(1, N) if n % 3 == 0 or n % 5 == 0) この問題はプログラマを関数型に導くためのものなのです。 これを動かすと、Pythonで13秒、PyPyで3.…
http://projecteuler.net/index.php?section=problems&id=42238着。かかった時間は測定不能レベル。 地道に計算すればそんなに難しくない。
Problem 277から421までのランクイン数のランキング 4/6 16:00頃現在 ID別 rank ID country frequency 1 x22 Slovakia 144 2 aleksey Ukraine 131 3 uwi Japan 126 4 triceps Japan 109 5 umu Germany 107 6 Tepsi Hungary 102 7 Anton_Lunyov Ukraine 100 8…
http://projecteuler.net/index.php?section=problems&id=421いろいろがんばって87秒になった。これ以上は無理そう。
http://projecteuler.net/index.php?section=problems&id=42159着。PyPyで110秒。 昨日解法わかったが、体調悪くてコードを組む気力がなかった。比較的簡単なのに。 もうちょっと速くなると思うけど、うまくいかない。