読者です 読者をやめる 読者になる 読者になる

PEをMathematicaで

Project Eulerに挑戦してみよう

Timingで計算時間を測ってみた

Timing で計算時間を測れることを知ったので,ためしてみました。

第40問で1から10^6までを並べる操作を Join と Flatten でやってみます。

結果は1.3秒と2.5秒。あんまり変らないですね。Project Euler の制限時間は一応1分らしいので,このレベルの選択で悩む必要はなさそうです。

ただ,ググってみたら気になる情報が。

手続き型で書くよりも組み込み関数を使ったほうがずっと速いとのこと。組み込み関数を多用すると見た目がマクロみたいになってちょっと嫌なのですが,積極的に使うべきなんでしょう。

Mathematica使ってるのに手続き型で書くと
関数型に比べて10倍
組み込み関数に比べて1000倍遅くなる
ということらしい。あくまで上の例においてだけど。
Forの入れ子とか恐ろしいな。

d.hatena.ne.jp