2011-01-01から1年間の記事一覧

%

def foo(step, str) Fiber.new do loop do (step-1).times do Fiber.yield('') end Fiber.yield(str) end end end fizz = foo(3,'Fizz') buzz = foo(5,'Buzz') 100.times do |i| s = fizz.resume + buzz.resume puts s.empty? ? i+1 : s end 剰余つかわない…

再帰しない

配列いらない & メモに近いよね、とツッコミがあったので... def fib(n) return 0 if n == 0 p,t = 0,1 (n-1).times{p,t = t,t+p} t end なんだかな... ちょっとズルしてみた def fib(n) p,t = 1,0 n.times{p,t = t,t+p} t end

再帰

再帰を使わないでフィボナッチ数 hfib = Hash.new do |h,k| if k < 2 h[k] = k else h[k] = h[k-1]+h[k-2] end end 15.times{|n| p [n,hfib[n]]} は再帰するので def fib(n) s = [0, 1] while s.size <= n s.push(s[-1]+s[-2]) end s[n] end 15.times{|n| p …

euler

ところでeulerは昨年末に75問ができたところでとまってる。

ruby-gnome2

WindowsのRuby1.9でruby-gnome2が動くかためしてみた。Rubyはhttp://rubyforge.org/frs/download.php/74298/rubyinstaller-1.9.2-p180.exeをインストール。 Rubyのコマンドプロンプトから gem install gtk2 cairoのRDocでエラーが出たけどモジュールは入って…