2008-03-26から1日間の記事一覧

18:30ごろ帰りました。

Project Euler Problem 10

module Enumerable def sum inject(0) {|a, n| a + n } end end def sieve(upper) table = Array.new(upper + 1, false) (2 .. upper).inject([]) do |primes, guess| unless table[guess] primes << guess (guess * 2).step(upper, guess) {|n| table[n] = …

Project Euler Problem 9

def comb(*enums, &block) comb2(enums, 0, [], &block) end def comb2(enums, index, params, &block) return block.call(*params) if index >= enums.size enums[index].each do |x| params << x comb2(enums, index + 1, params, &block) params.pop end …

Project Euler Problem 8

require 'enumerator' def f(s) (0 .. s.size - 5).map do |i| s[i, 5].enum_for(:each_byte).inject(1) {|a, c| a * (c - ?0) } end.max end src = <