Project Euler(プロジェクト・オイラー)とgist.github

| コメント(0) | トラックバック(0)

会社の一部の開発メンバーでプログラミング部をやろうという事になって、その中の一人がProject Eulerが面白いよということで、皆で始めたのがきっかけ。

数学の問題が難易度順に並んでいて、プログラムを書いて解を求めるっていうのが目的です。
ユーザ登録をすると答え合わせができるようになります。

使用するプログラミング言語は一応プロフィールに登録する事になっていますが、おそらく皆さん色々な言語でやっていると思いますね。やはり問題によって解きやすい言語、解きづらい言語がありますからね。

解の値を入力するだけの答え合わせなので、実は解を求められれば方法は何でもありではあります。

私は最初Scalaの勉強のために問題1と2はScalaで解いたのですが、問題3でまずお題の値がIntを超えていて、BigIntと再帰呼び出しで書くのが面倒になり、常に多倍長整数を使えるRubyに切り替えました(弱)RubyいいよRuby。

始めた頃は正直もういい歳なんだし面倒だなぁと思ってましたが(笑)クリアした問題が増えてくると1問解くごとに達成感があって楽しいんです。

英語のサイトなのでまず問題の理解が難しいのですが、日本語訳をしているサイトがあります!

問題数は今でも少しずつ増えていて現時点の直近では最後に2011年5月29日にProblem 340が登録されています。さすがに超難問の匂いがプンプンしますねw

プロフィールから自分の解いた数が記載されたバナーを取得することができて、このブログのサイドバー上に貼ってあります。これです。

はい、まだ20問しか解けてません(´・ω・`) ま、空いた時間でちょいちょいやってるだけなので少しずつ増やしていこうと思います。


次に書いたプログラムをどう管理しているかって言うと、もちろんローカルディスクのファイルとしては保存したあるのですが、誰かに見せたり意見を聞いたりするためにgist.githubを使っています。

gist.githubはコードスニペットを管理するツールとしては最高に使いやすいサービスです。

ただ、プロジェクト・オイラーだとそう簡単に答えが探せたらツマラナイので一応Privateで保存してあります。

Privateとは言ってもURLを知っていれば、誰でも見られます。例えばProblem 20の解を求める私の書いたプログラムはURLを知っていれば見られるはずです。おそらくPrivateは

・URLが複雑
・クローラにインデックスされない
・Embedタグが使えない

以外はPublicと変わらないんだと思います。

Publicで保存してEmbedタグを使えばブログのサンプルコード表示にも最適ですよ。


さて、プロジェクト・オイラーのProblem 20を解いてからもう1ヶ月も経ってしまったので、そろそろ21をやっつけるかな〜。しかしこのペースでは新しく増える問題(しかも難問)の方が多くて全く追いつけまてん!



トラックバック(0)

トラックバックURL: http://www.iwazer.com/mt/mt-tb.cgi/422

コメントする

このブログ記事について

このページは、iwazerが2011年6月 4日 15:42に書いたブログ記事です。

ひとつ前のブログ記事は「SHA-1の衝突の確率」です。

次のブログ記事は「playで/@testsが動かなくなって焦った」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。