RosettaCodeData/Task/Evaluate-binomial-coefficients/Groovy/evaluate-binomial-coefficients-1.groovy
2023-07-01 13:44:08 -04:00

10 lines
262 B
Groovy

def factorial = { x ->
assert x > -1
x == 0 ? 1 : (1..x).inject(1G) { BigInteger product, BigInteger factor -> product *= factor }
}
def combinations = { n, k ->
assert k >= 0
assert n >= k
factorial(n).intdiv(factorial(k)*factorial(n-k))
}