module ChunkyPNG::Canvas::Drawing

def binomial_coefficient(n, k)

Returns:
  • (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