Evaluate binomial coefficients: Difference between revisions
Content added Content deleted
(→Tcl: Added implementation) |
m (→{{header|Tcl}}: Add comments) |
||
Line 33: | Line 33: | ||
<lang tcl>package require Tcl 8.5 |
<lang tcl>package require Tcl 8.5 |
||
proc binom {n k} { |
proc binom {n k} { |
||
# Compute the top half of the division |
|||
set pTop 1 |
set pTop 1 |
||
for {set i $n} {$i > $n - $k} {incr i -1} { |
for {set i $n} {$i > $n - $k} {incr i -1} { |
||
set pTop [expr {$pTop * $i}] |
set pTop [expr {$pTop * $i}] |
||
} |
} |
||
# Compute the bottom half of the division |
|||
set pBottom 1 |
set pBottom 1 |
||
for {set i $k} {$i > 1} {incr i -1} { |
for {set i $k} {$i > 1} {incr i -1} { |
||
set pBottom [expr {$pBottom * $i}] |
set pBottom [expr {$pBottom * $i}] |
||
} |
} |
||
# Integer arithmetic divide is correct here; the factors always cancel out |
|||
return [expr {$pTop / $pBottom}] |
return [expr {$pTop / $pBottom}] |
||
}</lang> |
}</lang> |