Evaluate binomial coefficients: Difference between revisions
Content added Content deleted
(Add Plain English) |
|||
Line 1,381: | Line 1,381: | ||
=={{header|Kotlin}}== |
=={{header|Kotlin}}== |
||
<lang scala>// version |
<lang scala>// version 2.0 |
||
fun factorial(n: Int) = when { |
|||
n < 0 -> throw IllegalArgumentException("negative numbers not allowed") |
|||
else -> { |
|||
⚫ | |||
for (i in 2..n) ans *= i |
|||
⚫ | |||
} |
|||
} |
|||
fun binomial(n: Int, k: Int) = when { |
fun binomial(n: Int, k: Int) = when { |
||
Line 1,396: | Line 1,387: | ||
n == k -> 1L |
n == k -> 1L |
||
else -> { |
else -> { |
||
val kReduced = min(k, n - k) // minimize number of steps |
|||
var ans = 1L |
|||
var result = 1L |
|||
var numerator = n |
|||
⚫ | |||
while (denominator <= kReduced) |
|||
result = result * numerator-- / denominator++ |
|||
⚫ | |||
} |
} |
||
} |
} |