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 |