Euler: Problem 92

Posted by YpsilonTAKAI On 2013年2月5日火曜日 0 コメント
数の各桁の数を二乗した和を並べた数が89でループする場合を数える問題です。

操作からすると、345と435と543などの同じ構成の数は同じ結果になるので、それをうまく使えばメモ化で速くなりそうなので、やってみた。

数を数列にしてソートする。0はなくても同じなので除外する。そうしてできた数列で判定する関数を作ってメモ化する。

解けたんだけど、遅い。

ふと、元の数をつくるのにどれくらいかかるか計算してみたら、それだけで2分近くかかってる。こりゃだめだ。 どうしよう。


READ MORE

Euler: Problem 91

Posted by YpsilonTAKAI On 2013年2月1日金曜日 0 コメント

格子点を使って直角三角形を作る問題です。

まずは、格子から2点を取って、原点合せた3点でできる三角形が直角を含むかどうかをチェックしてみたのですが、10分という想像以上の時間がかかってしまい、別解を考えました。
このとき、「直交するベクトルの内積は0になる」なんていうのを使ったのですが、かなり懐かしい感じでした。


READ MORE

Euler: Problem 90

Posted by YpsilonTAKAI On 4 コメント
やっとこさ90番まで来ました。
ダイスの目を使って、2桁までの2乗数を作る問題です。

結果的には総当たりで解いたのですが、うまい方法ほないかなーっとつらつら考えていたりして、そこそこ時間はかかりました。
一番考えたのは、あるダイスがあったときに、題意を満たすもう一方のダイスの目を特定できないかということなのですが、条件を絞ることができずにあきらめました。


READ MORE

Euler : Problem 89

Posted by YpsilonTAKAI On 2013年1月10日木曜日 0 コメント


ローマ数字の正規化?の問題です。

質問は、正規化したときにどれだけ文字数が減るかというものです。
解くにはいろいろ方法がありそうですが、問題の最後の一文に書かれている内容から置換対象が数個に限定されるので、それを数えることで直接減らせる文字数を数えています。

以下コードです。
簡単なので、解説無しです。

READ MORE

Euler : Problem 88

Posted by YpsilonTAKAI On 2013年1月9日水曜日 0 コメント


久し振りに進めました。

和と積が同じになる数列について、その個数ごとの最小のものをみつける問題。
仕事がいそがしかったせいもありますが、時間がかかりました。

苦労したので長ーい解説です。

READ MORE

Project euler 24 解説

Posted by YpsilonTAKAI On 2012年12月28日金曜日 0 コメント
前の投稿に引き続き、Clojureの勉強会のコメント用の投稿です。
問題24を解の解き方の解説図です。

詳細は、gistのコメントで。


gistを貼っておきます。


READ MORE

Euler 4 retry

Posted by YpsilonTAKAI On 2012年12月17日月曜日 0 コメント
最近、Clojureの勉強会に出ていて、Project Euler の4番の高速版を作ってみました。

説明の画像を作ったので、貼ります。


コードも貼っときます。
説明はgistのコメントで。




READ MORE