Evaluate binomial coefficients: Difference between revisions
m
→{{header|Phix}}: now builtins
(Add Swift) |
m (→{{header|Phix}}: now builtins) |
||
Line 1,793:
=={{header|Phix}}==
There is a builtin choose() function which does this. From builtins/factorial.e:
<lang Phix>global function
atom res = 1
for i=1 to k do▼
end function▼
end for▼
?binom(5,3)</lang>▼
▲end function</lang>
Example:
▲<lang Phix>?binom(5,3)</lang>
{{out}}
<pre>
10
</pre>
However errors will creep in should any result or interim value exceed 9,007,199,254,740,992 (on 32-bit), so
{{libheader|mpfr}}
<lang Phix>include builtins\mpfr.e
?mpz_get_str(mpz_binom(5,3)) ▼
?mpz_get_str(mpz_binom(60,30))▼
?mpz_get_str(mpz_binom(1200,120))</lang>▼
▲ for i=1 to k do
▲ mpz_mul_si(r,r,n-i+1)
▲ end for
▲ return mpz_get_str(r)
▲?mpz_binom(5,3)
▲?mpz_binom(60,30)
▲?mpz_binom(1200,120)</lang>
{{out}}
<pre>
|