2015/11/06

Recent entries from same category

  1. Let's Encrypt を簡単操作できる CLI、Lego が MyDNS に対応した。
  2. golang でメモ専用コマンド「memo」作った。
  3. シェルで作る Twitter Bot 作成講座
  4. Windows ユーザは cmd.exe で生きるべき。
  5. Re: vimで方向キーがABCDを入力してしまう問題の解決

RubyからGoの関数をつかう → はやい - Qiita

約20倍はやい!!!!!!すごい!!!!!!!!!!!!!!

Go単体での実行に毛が生えた程度になりました!!!!!!!!!!!!!!!!!!

もう「Rubyより、ずっとはやい」なんて言わせないぞ!!!!!!!!

http://qiita.com/grj_achm/items/679b3f3af2cf377f0f02
def fib(n)
  return n if n <= 1
  fib(n - 1) + fib(n - 2)
end

puts fib(40)

巷で良く見る fib のコードですね。

$ time ruby fib1.rb
102334155
real    12.692
system  0.031
user    12.651

これを再帰を使わない様に修正すると以下の様になります。

def fib(n)
  f0, f1, v = 010
  n.times do |x|
    if x <= 1
      v = x
    else
      v = f0 + f1
      f0, f1 = f1, v
    end
  end
  return f0 + f1
end

puts fib(40)
$ time ruby fib0.rb
102334155
real    0.072
system  0.031
user    0.031

約400倍はやい!!!!!!すごい!!!!!!!!!!!!!!


blog comments powered by Disqus