require 'singleton' class Fact include Singleton def initialize @fact = Hash.new {|h, k| h[k] = k * h[k - 1]} @fact[1] = 1 end def [](n) return 1 if n <= 1 @fact[n] end end class Deck def initialize(seed, size=30) @fact = Fact.instance @se…
へえ。下降階乗冪っていうのがあるのか。どっちでもいいけど。 class Fact ... def falling(m, n) self[m].div(self[m - n]) end end def nCm(n, m) fact = Fact.new fact.falling(n, m).div(fact.falling(m, m)) end p nCm(30, 7)
class Fact def initialize @fact = Hash.new {|h, k| h[k] = k * h[k - 1]} @fact[1] = 1 end def [](n) return 1 if n <= 1 @fact[n] end end f = Fact.new p f[5] p f[20]