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

Project Euler 427(2)

http://projecteuler.net/index.php?section=problems&id=427O(nlogn)になった。 最後のところがネックで遅かったので、そこがなんとかならないか昨日の帰りと今日の行きに考えていたら、やっと速くなる方法を思いついた。 しかし、それはその計算の定義通り…

Project Euler 427

http://projecteuler.net/index.php?section=problems&id=42744着。出題されてから18日もかかった。 どう計算してもO(n^2)すらならなかったが、日曜に少し考えたらO(n^2)になった。しかし、これだと莫大な時間がかかる。少しずつ工夫してC++で3コアで回せば2…

Project Euler 429

http://projecteuler.net/index.php?section=problems&id=42973着。 問題見て考えたら簡単で、100番台でもこんな簡単な問題ないぞと思って、スクラッチから書き始める。それを実家の超絶遅いPCで流すこと25分。0という答えが出た。そこで時間切れ。もう出な…

Project Euler 428

http://projecteuler.net/index.php?section=problems&id=42825着。 とにかく数式変形が大変で。Mathematica的なものがあれば楽だったんだろうけど。昔自作したんだけど、途中で挫折したんだっけ? まだPyPyで40分以上かかっているのでなんとかしたい。帰り…

PyPyを速くする(4) 内包表記

例えば、こんなコードがあるとします。 def divs1(N): return [ N / n for n in xrange(1, N + 1) ] N = 10 ** 8 print sum(div1(N)) 内包表記ですね。これを間違ってもappendを使って次のように書いてはいけません。 def divs2(N): a = [] for n in xrange(…

// 範囲選択モードなら、選択範囲を次の単語の右に伸ばす // そうでなければ、カーソルにある単語を選択する if(selecting) { wordrightsalnen; } else { #x0 = x; #y0 = y; selectword; #x1 = seltopx; #y1 = seltopy; // message(str(#x1) + "," + str(#y1…