Method: Distribution::MathExtension#binomial_coefficient

Defined in:
lib/distribution/math_extension.rb

#binomial_coefficient(n, k) ⇒ Object Also known as: combinations

Binomial coeffients, or: ( n ) ( k )

Gives the number of different k size subsets of a set size n

Uses:

(n) n^k' (n)..(n-k+1) ( ) = ---- = ------------ (k) k! k!



272
273
274
275
276
277
278
279
280
# File 'lib/distribution/math_extension.rb', line 272

def binomial_coefficient(n, k)
  return 1 if k == 0 || k == n
  k = [k, n - k].min
  permutations(n, k).quo(factorial(k))
  # The factorial way is
  # factorial(n).quo(factorial(k)*(factorial(n-k)))
  # The multiplicative way is
  # (1..k).inject(1) {|ac, i| (ac*(n-k+i).quo(i))}
end