module ChunkyPNG::Canvas::Drawing
def binomial_coefficient(n, k)
-
(Integer)
- The binomial coeffcient of (n,k)
Parameters:
-
k
(Integer
) -- k-element, second parameter in coeffient (the number on the bottom when looking at the mathematic formula) -
n
(Integer
) -- first parameter in coeffient (the number on top when looking at the mathematic formula)
def binomial_coefficient(n, k) return 1 if n == k || k == 0 return n if k == 1 return -1 if n < k # calculate factorials fact_n = (2..n).inject(1) { |carry, i| carry * i } fact_k = (2..k).inject(1) { |carry, i| carry * i } fact_n_sub_k = (2..(n - k)).inject(1) { |carry, i| carry * i } fact_n / (fact_k * fact_n_sub_k) end