Evaluate binomial coefficients: Difference between revisions
Content added Content deleted
(Add Swift) |
|||
Line 2,427: | Line 2,427: | ||
<lang stata>. display comb(5,3) |
<lang stata>. display comb(5,3) |
||
10</lang> |
10</lang> |
||
=={{header|Swift}}== |
|||
<lang swift>func factorial<T: BinaryInteger>(_ n: T) -> T { |
|||
guard n != 0 else { |
|||
return 1 |
|||
} |
|||
return stride(from: n, to: 0, by: -1).reduce(1, *) |
|||
} |
|||
func binomial<T: BinaryInteger>(_ x: (n: T, k: T)) -> T { |
|||
let nFac = factorial(x.n) |
|||
let kFac = factorial(x.k) |
|||
return nFac / (factorial(x.n - x.k) * kFac) |
|||
} |
|||
print("binomial(\(5), \(3)) = \(binomial((5, 3)))") |
|||
print("binomial(\(20), \(11)) = \(binomial((20, 11)))")</lang> |
|||
{{out}} |
|||
<pre>binomial(5, 3) = 10 |
|||
binomial(20, 11) = 167960</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |