From: Kazuhiro Yoshida Date: 1999-11-16T18:20:31+09:00 Subject: [ruby-list:18638] fibonacci もりきゅうです。 sample/fib.rb よりちょい早い版。1 重再帰にしただけですが.. -- fib2.rb def fib(n, i=1, prev=0, this=1) if n == i this else fib n, i+1, this, this+prev end end print fib(20), "\n" -- fib2.rb より早いかと思いきやそんなことはなかった読みにくい版。 -- fib3.rb # Binet's formula def fib(n) root_5 = Math::sqrt 5 golden_rate = (1+root_5)/2 golden_rate_anti = (1-root_5)/2 ((golden_rate ** n - golden_rate_anti ** n)/root_5).to_i end print fib(20), "\n" -- # 黄金率って golden_rate なのか? > 私^^; ---- Kazuhiro Yoshida moriq.kazuhiro@nifty.ne.jp