2011-01-31から1日間の記事一覧
一度は諦めたこの方法でできた def memoize(f) dp = {} lambda {|*arg| dp[arg] || dp[arg] = f.call(*arg)} end def ack(m, n) if m == 0 then n + 1 elsif n == 0 then ack(m - 1, 1) else ack(m - 1, ack(m, n - 1)) end end ack = memoize(lambda{|*arg|…
一度は諦めたこの方法でできた def memoize(f) dp = {} lambda {|*arg| dp[arg] || dp[arg] = f.call(*arg)} end def ack(m, n) if m == 0 then n + 1 elsif n == 0 then ack(m - 1, 1) else ack(m - 1, ack(m, n - 1)) end end ack = memoize(lambda{|*arg|…