プログラミング

Project Euler 679

https://projecteuler.net/problem=679298着。フォーラムではを提案していたのだが、なぜかになってしまった。簡単すぎる。

Project Euler 678

https://projecteuler.net/problem=678夏休み明けで久しぶりの自作問題。 数学寄りの問題で、アルゴリズムを問う場面は無かったと思う。 場合分けが必要。

Project Euler 662

https://projecteuler.net/problem=662自作問題です。 すみません、易しすぎてフォーラムで叩かれましたが、擁護する人もいて問題になりました。 それでも、PyPyで1分以内にいれるのは、一筋縄ではいかないです。 工夫すれば10秒程度になるはずです。

Project Euler 652

https://projecteuler.net/problem=652Problem 645以来の自作問題です。「proto-logarithmic」というよくわからない言葉が使われているのは、となる自然数a, b, c, dが自明なもの(問題文の条件)以外に無いと証明されていないからです。超越数難しい。これ…

Project Euler 645

https://projecteuler.net/problem=645久しぶりの自作問題です。 日本(の制度)がモチーフになっている(天皇誕生日と国民の休日)ので、広く問題に取り組んでもらいたいです。タイトルの「Every Day is a Holiday」は、「毎日が日曜日」から取っています(…

Project Euler 627

https://projecteuler.net/problem=627131着。久しぶりの自作。問題を思いついてから1年で日の目を。この問題を解くのに苦労したのは、Polynomialのライブラリを作ることでした。しかし、SymPyを使えば簡単。ここでSymPyの使い方を紹介しておきます。 変数 i…

Project Euler 615

https://projecteuler.net/problem=615150着。実は、この問題は採用された最初の自作。 (内部的に言うと実は違うのだが)14年2月に提案した問題らしい。それが最後に少し改変されて公開されるに至った。 解いてみればわかるが、手法ありきのわざとらしい問…

Project Euler Dev Teamのメンバーに

きっかけは、Problem 12だっただろうか。私は、PriorityQueueを使えば大きな数でもこの問題が解けることに気が付いた。これがフォーラムでどこまで大きな数で1分以内に問題を解けるかの競争が行われる端緒になったのではないだろうか。どうもこれを中の人が…

Project Euler 29

http://projecteuler.net/index.php?section=problems&id=29この問題は、解くだけなら非常に易しいです。Pythonなら1行で書けるレベルです。 しかし、工夫をすれば大きな数でも解けることに昔気づきました。フォーラムに今までそういう書き込みは無かったの…

Project Euler 592

http://projecteuler.net/index.php?section=problems&id=59232着。 目が覚めて問題を見て、少し手を動かしたら割と早く解法を思いついたが、けっこうめんどくさかった。フォーラムになさそうな解法だったので、フォーラムに書いた。今のところ、40秒くらい…

Project Euler 573

http://projecteuler.net/index.php?section=problems&id=573110着。 Problem 584が解けたので、久々に考えていた。今だと30が限界だが、ほとんど無い確率の計算をカットすればできると思っていた。しかし、一方で、非常に早く解いている人がいて、その人た…

Project Euler 584

http://projecteuler.net/index.php?section=problems&id=58459着。 先週やっと解けた。 割と早く方針は立ったが、なかなかつまらないバグが取れずにここまで来てしまった。なおかつ、1時間もかかっている。 恐らくフォーラムには無い解法だと思っていたが、…

バイオインフォマティクス技術者認定試験受験(2)

ここの続き首席合格していた。正直、自己採点した時、少なくとも2問は足りないと思っていた。 過去の各分野平均点データがあるのでまとめてみた。この4分野は、いずれも250点ずつだった。ただし、去年まではバイオインフォマティクス(前半)が24問、同(後…

Project Euler 589

http://projecteuler.net/index.php?section=problems&id=5897着。 英語の意味がわからなかった。30分以上にらめっこしていたが、結局意味が取れなかった。 しかし、ある可能性がひらめいて、それを擬似乱数を使って組んでみたら、だいたい合った。ひらめき…

Project Euler 587

http://projecteuler.net/index.php?section=problems&id=5879着。 23分で解けた。すぐに解法を思いついた、というか、思いつくというほどの解法でもなかった。しかし、とにかく間違えまくった。これで、Eulerianは188ptsの14位。もう二度とこんな位置までは…

Project Euler 585

http://projecteuler.net/index.php?section=problems&id=58525着。 いまさらだが、フォーラムに書いたので。 これもなぜか正答者が伸びない。 コーディングに時間がかかったが、方向性はすぐに思いついた。

Project Euler 586

http://projecteuler.net/index.php?section=problems&id=5867着。 割とすぐに解法を思いついた。しかし、なかなか正しく書けない。ありがちなコードも間違えまくっていた。そして、この問題は間違っていた。自分は気づかなかったが。それはすでに修正されて…

Project Euler 581

http://projecteuler.net/index.php?section=problems&id=5813着。 3着はおよそ7年ぶり、Problem 280以来のようだ。確かその前にも一度あったような気がするが、記録が残っていないし、ブログにもなぜか順位を乗せていない。その当時は20着以内常連だった。…

バイオインフォマティクス技術者認定試験受験

今日受験してきた。 色々なところからこの試験の話は聞いていて、バイオの知識も少しずつたまってきたので受けてみた。まず、この本を買うところから始まる。バイオインフォマティクス入門作者: 日本バイオインフォマティクス学会出版社/メーカー: 慶應義塾…

Project Euler 566

http://projecteuler.net/index.php?section=problems&id=56654着。 3か月ぶりにパーフェクトを回復した。ごり押しなのだが、まだあまり解けた人が少ないので、詳しくは語れない。 1か月くらい前に解けたつもりだった。 しかし、答えが合わない。 その後放置…

WindowsのUbuntuでC++

Problem 490で作ったごり押しコードをg++でコンパイルして動かしてみた。バージョンは4.8.4-2らしい。このコードは本当に四則演算しか行っていない、STLも使っていない単純なものである。さすがにこれは速くならないと思ったら、 Win(MSVC) 2208s Ubuntu(g++)…

WindowsのUbuntuでPythonとPyPy(メモリサイズ)

メモリの使用量を見てみる。 まずは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…

WindowsのUbuntuでPythonとPyPy(int32、double)

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 >>…

Windows 10のUbuntuでPythonとPyPy(dict)

PyPyは、たいていの場合Pythonのコードそのものを動かしてもPythonより数倍速くなる。単純な計算ならC++並みに速くなる。 しかし、辞書を扱う部分が主になると途端に遅くなり、Pythonより遅くなる。 UbuntuのPython/PyPyではどうなるのか調べてみた。 #!/usr…

WindowsのUbuntuでPythonとPyPy

以前に、WindowsがBashをサポートする、という記事があった。これがあればPythonが速くするはずだ。なぜなら、Windows版のPythonは32ビットを超えると多倍長整数とされてしまうが、LinuxのPythonなら64ビットまでならint扱いになるはずだからだ。ここで、Pyt…

Project Euler 560

http://projecteuler.net/index.php?section=problems&id=56029着。 データの特徴を使って、なんとか日曜のうちに解いた。 フォーラムを見ると、全く違う回答ばかりだった。その中のキーワードを拾って、調べて、がんばってコードを組んでみたら、少し速くな…

Project Euler 459

http://projecteuler.net/index.php?section=problems&id=459139着。 2年以上前からずっとわからない問題だった。この1次元版はかなり考えていて、それでもまったくめどが立っていなかった。ただ、あの考え方をまだ取り入れていなかったので、そこに一縷の望…

Project Euler 495

http://projecteuler.net/index.php?section=problems&id=48290着。 正月明けくらいから考え始めた。 すぐに一つ方法を思いついたが、よく考えるとどうもうまくいかない。もう一つ思いついたが、これもうまくいかない。かわりばんこに考えていたら、どうも後…

Project Euler 482

http://projecteuler.net/index.php?section=problems&id=482129着。 日曜日に考え始めた。 この手の幾何学の問題は、どう式に落とし込むのかが問題だ。最初に考えた方法は、あまりうまくいかなそうだったが、2つ目に考えた方法はなんとかなりそうな感じだっ…

Project Euler 548

http://projecteuler.net/index.php?section=problems&id=548103着。 日曜はあまり考える時間が無くて、風呂に入って考えたら、これならいけるというアルゴリズムを思いついた。 それを次の日に実装したが、合わない。 その次の日に間違いを見つけて1時間半…