projecteuler

ブルートフォースしかない?Problem124

かつて100位以内(日本限定)であったランキングもどんどん後退。 今日現在で172位になってしまっていた。 そこで、という訳でもないのだけど以前から気になっていて解けなかった問題を再点検してみた。 Problem124をピックアップしてみた。以前は問題の意味…

インドからの招待状

projecteuler経由でmailが届いていた。 SPAMにしてはかなりマニアックな、と思ったけど、どうもそうではないっぽい。 だって、こんなSubjectのSPAMが来るわけはないでしょ? Online Math Programming Contest 要は、TopCoder/uvaonlineみたいなアルゴリズム…

久しぶりに解けた(解いた)

以前からの懸案だったProblem90をようやく解いた。 いや、しかし、フォーラムにも書いてあったけど、問題文が分かり辛いのなんのって。 これが分かれば簡単だったのだけど (とかいいながら、かなり変な試行錯誤をしていたな。今になって考えてみると)結局…

マクロは是か非か!?

微妙にカテゴリが違うのは承知のうえで。 マクロを組んで作業は「実力」ではない? | スラド デベロッパーいやぁ、これはひどすぎでしょう。 って、peojecteuler界隈ではpencil/paper陣営もいるんだった。 About - Project Euler と、ここで無理やり?つなげる

ショートカットを見つけ出せ

最近、似たようなことばかり書いている気がするけど、Level3を突破してようやく? 分かりかけてきたといったところなのか。 projecteulerの問題はいろんな分野にまたがっていて、大半はプログラムでないと (現実的な時間*1で解けない(ものが多い)。 一方で…

djの実装ではまる

P81はdjで解けたんだけど、条件が限定されている関係で、いんちきdj(1passの計算)で解けたのだった。 ただ、P83(P82の前にこちらを解いた)の場合は、条件限定なし(1passでは計算が終わらない)なので、 この実装に手間取った。 具体的には、Pythonのリ…

gmpよりも便利なもの!?

ある種、邪道といわれるかもしれないのだけど、PARI/GPなるものがあるのを知った。 projecteuler界隈だとMathematicaが王道?だよなぁ、と思って、よく見たら Sign In - Project Euler PARI/GPはユーザ数こそ少ないものの、平均解答レートが高い。 (なんと、…

PythonがJavaの2倍弱

といっても、バイナリの実行速度ではなくて。 projecteulerにおける言語使用ユーザ数の比較です。 C/C++と並ぶくらいにPythonが健闘しているのは興味深いですね。 (なんと、ユーザ数だけを見るとC/C++についで2位ですぜ。) Perlが少ないのは、標準では多倍…

制約条件を探せ

ProjectEulerを解いているとブルートフォースに頼らなくてはいけない局面が結構?ある。 ただ、同じブルートフォースをするにせよ、候補は少ないに越したことはない。 特にPEはひねらないでブルートフォースをはじめたが最後、終わらない(ことが多い)。 数値…

続続:sqrtの結果が整数かどうかの判別

先日 続:sqrtの結果が整数かどうかの判別 - skobayasの日記 なんて書いていて、まぁ、それをひっくり返すつもりはないのだけど、 さらにgmpを探求?していたら、is_squareなる関数を発見 これで片がつくんじゃないの?

まじめに計算してはいけません

これはprojecteulerにおける鉄則(だと思う) 例えば、Problem104なんだけど、調子に乗ってgmpのfib関数を使ったら、終わらないのなんのって。 いくら高速なルーチンとはいえ、(この場合)全桁必要ではないのだから、そこまで計算する必要はない。許容可能…

関数の詰め合わせ(gmp)

先日、やたら時間のかかる計算をしていて、その合間にgmpyを見ていたら、fibなる関数を発見 フィボナッチを計算できるらしい。その他、gcd/lcmってのも気になる。 is_powerなんてのもあるなぁ。先日のような間違った小手先テクニックを使うまでもないと? =>…

続:sqrtの結果が整数かどうかの判別

先日 skobayasの日記 なんて書いていたけど、すべてのケースに当てはまるわけではないことを発見。 2進変換でどうしても誤差が出るので、どこかで誤差が積算されてしまうんだろう。なので、この発言は撤回。「一般的には」という部類なら何とかなりそうな気…

やっと分かったぞdj

他の問題はいくつか考え中で、未解決なのだけど、かねてからの懸案だった Problem81をようやっと片付けた。結局のところ、djが完全に理解できているかどうかという話なんだけど、以前は挫折していた。 だってさ、どこを見ても、説明が分かりづらいのなんのっ…

ファイル中の改行に注意

難しくないけど、ひたすらめんどくさいProblem89 条件分岐の嵐?でいったんローマ数字をアラビア数字にして、再度ローマ数字に変換する方針を採ってみた (もっとエレガントな方法がありそうなもんだけど)一応、デバッグのため、 ローマ数字(ファイルから…

素数の計算はgmpで!?

gmpという巨人の肩があるので、素数系は「えいや」で片付ける目処がたっている。 ということで、目指すはProblem146早速、実直に?実装してみた。 連続する素数というのがちょっと引っかかったけど、n**2+1が素数なら、 これに2を足して判断、以下、繰り返し…

sqrtの結果が整数かどうかの判別

projecteulerを解いているとたまにこういう需要がある。簡単な例で言えば、、sqrt(4)=2なので整数だけど、sqrt(5)=2.2360...なので整数じゃないと 厄介なのが、実際の問題はそんなに簡単じゃなくて(当たり前)、調べるべき数も膨大になっているということす…

一日遅れの「友愛」

P95を解いた 予想に反して?割とすぐに?解けた 考える時間とコードをいじっている時間が同じくらいだったからなぁ。 (一般的に考えている時間の方が圧倒的に多い。こういう問題はなかなか解けない)なんで「友愛」なのかって? それはP95を読んでください。…

久しぶりのProjectEuler

TOEICも終わった(燃え尽きた?)ことだし、久しぶりにProjectEulerなど 積み残しリスト(番号順に解いていくポリシーで運用してたのだけど、解けないものがある)の最初にあったのは Problem68 問題の意味が理解できなかったのでずっと放置プレイだった。で…

ベクトルの外積って!?

これも長かったProblem102 ベクトルの概念を使用すればスカッと解けそうだったのだけど、そう簡単ではなかった。 いろいろ試行錯誤(調べるだけだけど)してみて分かったのは、ベクトルの外積を使用することにより、問題とする点がベクトルの進行方向の右に…

Problem98(ようやく解決)

長かった。 結局のところ、ミスの原因は 「異なる文字が同じ数字をもつこともないとする.」 を完全に理解できていなかったことに起因する。 (アルファベットは26あるけど、数字は10しかないからね)まぁ、それだけでないといえば言えるのだけど。 (辞書や…

Problem98

ここしばらく解けていない。 アナグラムを探すだけでも一苦労 その上で各ワードを数字にマッピングしなければいけない さらにそれが平方数かどうかを確認するという前回出た答えが間違いだといわれ、アプローチを変えるも同じ答え。解釈が違っているというこ…

ブルートフォースよけ?

久しぶりに答えを入力しようとしたらいつの間にか、CAPTCHAが導入されていた。 文字通りのブルートフォースで答えを入力していた奴がいるということか。 かなりむちゃだなぁ。で、その影響かどうか知らないのだけど、散々苦労して出した答えがはねられた。 …

ベクトルって難しい!?

なんとなく、解けそうな気がしたP102 予想に反してなかなか解けない。(苦笑)ベクトルの分解(合成)?が鍵のような気もするのだけど。 もっといいアプローチがあるのか?

巨人の肩に乗るのにはコツがいる(時もある)

P60が解けなくて解けなくて参ったな、と思っていてはや2週間以上 ここ最近のアプローチはgmpで素数判定をさせるも該当エントリが出てこない。 困ったことに?例題の4つのセットは出てくるのだが。ふと思いついた。もしかして、返り値=2で限定しちゃダメなん…

計算が終わらない!?

久しぶりのprojecteulerなんだけど、P87で詰まってるっぽい。 リストとループを使って処理させているんだけど、やたらと時間がかかる。 例題はクリアできているので、方針に間違いはないんだろうけど。10分くらい経つけど終わる気配がない。 相当実装がヘボ…

ひらめきが必要か?

追い越された。 しかしなぁ、ここまで来るとひらめきというレベルじゃない気もするんだけど。 暑くてへたれ気味

リテラシーがないということなのか?

ここ数日、スタック中。 一般的な解説サイトを見ても、例によって?例のごとく?何の断りもなく?数式のオンパレード はっきり言って理解できない。これは要は、リテラシーがないということなんだろうか。これが英語なら辞書を引き引きどうにかなるんだろう…

分割数の漸化式が分からない

引き続きP78 皆さん 自然数の分割 - Wikipedia 見て解法を出しているのだけど、私にはさっぱり理解できない。何をどうすればいいのかが?? 特に、何の断りもなく?kが出てきてみたり。 奇数分割でも偶数分割でもいいんだけど、どこをどうするといいのかがさ…

メモ化でも解決せず

P78だけど、再帰で書くと激しく遅いので断念。メモ化する事で高速化が図れるのは分かったのだけど、 今度はMemoryErrorと言われる始末。 なにか、アプローチを変えないといかんのだろうな。P73の時もフルでカウントしようとしたらMemoryErrorの憂き目を見た…