Evaluate binomial coefficients: Difference between revisions

(Add Plain English)
Line 1,381:
 
=={{header|Kotlin}}==
<lang scala>// version 12.0.5-2
 
fun factorial(n: Int) = when {
n < 0 -> throw IllegalArgumentException("negative numbers not allowed")
else -> {
var ans = 1L
for (i in 2..n) ans *= i
ans
}
}
 
fun binomial(n: Int, k: Int) = when {
Line 1,396 ⟶ 1,387:
n == k -> 1L
else -> {
val kReduced = min(k, n - k) // minimize number of steps
var ans = 1L
forvar (iresult in n - k + 1..n) ans *= i1L
ansvar /numerator factorial(k)= n
var ansdenominator = 1L1
while (denominator <= kReduced)
result = result * numerator-- / denominator++
ansresult
}
}
Anonymous user