Project Euler 問題139

久しぶりに一問解きました。
問題がかなり難しいです。
なかなか解けない。
解法はわかっても、
処理時間がべらぼうにかかって
解けない場合もありますw
計算式を発見してO(n)とかで解くプログラムを
書かないと無理ですねw


自分は大学出てないので、
数学力が足らないですね。
勉強しなければいけない事が
まだまだたくさんあります。

ところで、以前に解いた問題39ですが、
list 手続きを使うのをやめたら処理時間が
半分(40秒→20秒)になりました。
list 使うと遅いというのは、
以前に教えて頂いているのですが、
リスト処理言語なのに list 使うと遅い
と言うのは悲しい気がしますね。

処理速度に関する注意点

・list 手続きはなるべく使わない。
・なるべくリストは使わない。
・末尾再帰じゃない再帰は書いてはいけない。(末尾再帰はエレガントさが足りないです。再帰で書くほうが美しいです。)
・「再帰」が一発変換できない(処理速度関係ないw)

いろいろ悲しいですw


メモリに関する注意点

・巨大なリストは作ってはいけない。
・無限ストリームは無謀。
・末尾再帰でない再帰は(ry

いろいろ悲しいですw

京ちゃん(スパコン)とかなら自分のクソ遅いゴミプログラムも
瞬時に終わるんですかねえ?www