Evaluate binomial coefficients: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
m (→{{header|Phix}}: replaced with gmp version) |
||
Line 1,754: | Line 1,754: | ||
</pre> |
</pre> |
||
However errors will creep in should any result or interim value exceed 9,007,199,254,740,992 (on 32-bit), so (and using a different algorithm just for kicks): |
However errors will creep in should any result or interim value exceed 9,007,199,254,740,992 (on 32-bit), so (and using a different algorithm just for kicks): |
||
{{libheader| |
{{libheader|mpfr}} |
||
<lang Phix>include builtins\ |
<lang Phix>include builtins\mpfr.e |
||
function |
function mpz_binom(integer n, k) |
||
mpz r = mpz_init(1) |
|||
for i=1 to k do |
for i=1 to k do |
||
mpz_mul_si(r,r,n-i+1) |
|||
if mpz_fdiv_q_ui(r, r, i)!=0 then ?9/0 end if |
|||
-- r = ba_divide(ba_multiply(r,n-i+1),i) |
|||
end for |
end for |
||
return r |
return mpz_get_str(r) |
||
end function |
end function |
||
?mpz_binom(5,3) |
|||
?ba_sprintf("%B",ba_binom(5,3)) |
|||
? |
?mpz_binom(100,50) |
||
? |
?mpz_binom(60,30) |
||
? |
?mpz_binom(1200,120)</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |