2016-01-01から1年間の記事一覧
http://projecteuler.net/index.php?section=problems&id=5813着。 3着はおよそ7年ぶり、Problem 280以来のようだ。確かその前にも一度あったような気がするが、記録が残っていないし、ブログにもなぜか順位を乗せていない。その当時は20着以内常連だった。…
今日受験してきた。 色々なところからこの試験の話は聞いていて、バイオの知識も少しずつたまってきたので受けてみた。まず、この本を買うところから始まる。バイオインフォマティクス入門作者: 日本バイオインフォマティクス学会出版社/メーカー: 慶應義塾…
http://projecteuler.net/index.php?section=problems&id=56654着。 3か月ぶりにパーフェクトを回復した。ごり押しなのだが、まだあまり解けた人が少ないので、詳しくは語れない。 1か月くらい前に解けたつもりだった。 しかし、答えが合わない。 その後放置…
Problem 490で作ったごり押しコードをg++でコンパイルして動かしてみた。バージョンは4.8.4-2らしい。このコードは本当に四則演算しか行っていない、STLも使っていない単純なものである。さすがにこれは速くならないと思ったら、 Win(MSVC) 2208s Ubuntu(g++)…
メモリの使用量を見てみる。 まずはlistから。 #!/usr/bin/python import time a = [ n + 1 for n in xrange(10 ** 7) ] time.sleep(10) Python(Win) 160MB PyPy(Win) 40MB Python(Ubuntu) 320MB PyPy(Ubuntu) 80MBint64だから倍になるのはわかる。 #!/usr/b…
32ビットを超える整数UbuntuのPythonが速かったが、そうでない場合はどうだろう。簡単な例で確かめてみる。 #!/usr/bin/python import sys import time def H(n): return sum(n / k for k in xrange(1, n + 1)) t0 = time.clock() print H(10 ** 8) print >>…
PyPyは、たいていの場合Pythonのコードそのものを動かしてもPythonより数倍速くなる。単純な計算ならC++並みに速くなる。 しかし、辞書を扱う部分が主になると途端に遅くなり、Pythonより遅くなる。 UbuntuのPython/PyPyではどうなるのか調べてみた。 #!/usr…
以前に、WindowsがBashをサポートする、という記事があった。これがあればPythonが速くするはずだ。なぜなら、Windows版のPythonは32ビットを超えると多倍長整数とされてしまうが、LinuxのPythonなら64ビットまでならint扱いになるはずだからだ。ここで、Pyt…
http://projecteuler.net/index.php?section=problems&id=56029着。 データの特徴を使って、なんとか日曜のうちに解いた。 フォーラムを見ると、全く違う回答ばかりだった。その中のキーワードを拾って、調べて、がんばってコードを組んでみたら、少し速くな…
http://projecteuler.net/index.php?section=problems&id=459139着。 2年以上前からずっとわからない問題だった。この1次元版はかなり考えていて、それでもまったくめどが立っていなかった。ただ、あの考え方をまだ取り入れていなかったので、そこに一縷の望…
http://projecteuler.net/index.php?section=problems&id=48290着。 正月明けくらいから考え始めた。 すぐに一つ方法を思いついたが、よく考えるとどうもうまくいかない。もう一つ思いついたが、これもうまくいかない。かわりばんこに考えていたら、どうも後…
http://projecteuler.net/index.php?section=problems&id=482129着。 日曜日に考え始めた。 この手の幾何学の問題は、どう式に落とし込むのかが問題だ。最初に考えた方法は、あまりうまくいかなそうだったが、2つ目に考えた方法はなんとかなりそうな感じだっ…
http://projecteuler.net/index.php?section=problems&id=548103着。 日曜はあまり考える時間が無くて、風呂に入って考えたら、これならいけるというアルゴリズムを思いついた。 それを次の日に実装したが、合わない。 その次の日に間違いを見つけて1時間半…
http://projecteuler.net/index.php?section=problems&id=54544着。 眺めていても全く分からないので、検索していたら日本語のページが引っかかって、そこから単語を拾って英語のページにたどり着いた。 しかし、メモリがけっこう厳しくて、なんとか解いたら…
http://projecteuler.net/index.php?section=problems&id=499148着。 1年前、全くわからずにシミュレーションをしたのみで1週間が過ぎ、放置していた。 昨日の朝から考えて、夜にはだいぶいい近似が得られた。そして、風呂入って考えたらだいたいわかった。…
http://projecteuler.net/index.php?section=problems&id=522135着。 2週間前、Problem 490が解けてからずっと考えていた。最初は出題された頃の域を出なかったが、とりあえずグラフを捨ててみようと考えたらたぶん6日前くらいから進んだ。そこから毎日匍匐…
http://projecteuler.net/index.php?section=problems&id=54227着。 夜10時の出題なので問題だけ見て寝ようと思っていた。風呂入って考えたらだいぶわかったので、とりあえずT(1000)だけ出した。 朝起きて2時間弱で答えを出した。しかし、1分弱かかって、し…
http://projecteuler.net/index.php?section=problems&id=490124着。 1年前考えたときは、C++で70日くらいかかる勘定だった。 冬休みに入ってからずっと考えていたら、ごり押しには違わないが、それほど時間がかからないことが分かった。組んで動かしてみた…