Pascalの三角形をやてみた

http://rubyist.g.hatena.ne.jp/moira/20090729/1248837435
を見て別のアプローチで再帰使わずにやってみた。
(階乗の計算では再帰使っているけどw
かなり速い!!

class Numeric
  def fact
    return 1 if self.zero?
    return @cache until @cache.nil?
    @cache = self * (self - 1).fact
  end
end

def pascal(n)
  n -= 1
  (0..n).map{|x| n.fact / (x.fact * (n - x).fact)}
end

pascal(32)