2008-11-13から1日間の記事一覧

Problem 77

http://projecteuler.net/index.php?section=problems&id=77 Problem 76とまったく同じ方針で解ける。 まず再帰。 count x = count' x primes count' x (p:ps) | x > p = count' (x-p) (p:ps) + count' x ps | x ==p = 1 | x < p = 0 そして、DPに書き換える…

Problem 76

http://projecteuler.net/index.php?section=problems&id=76 まず再帰で書き下す。計算時間は指数時間。 count (x+1) = count' (x+1) x count' 0 _ = 1 count' _ 1 = 1 count' x m | x > 0 = count' (x-m) m + count' x (m-1) | x < 0 = 0 この再帰をDPで書…

Problem 75

http://projecteuler.net/index.php?section=problems&id=75 普通に数える。 import Data.List pythagoras l = [2*m*(m+n)|m<-[1..floor.sqrt.fromInteger.div l$2], n<-[1..min m$div l (2*m) - m],gcd m n ==1,even m || even n] p075 l = length.concat.f…

Problem 78

http://projecteuler.net/index.php?section=problems&id=78 今までと同じ方法はかなり時間がかかる。 まぁ、そこで、google先生ですよ。 結果できたのが下。 import Data.List import Data.Array.IArray import Data.Maybe import Control.Monad ini = arra…