27 lines
609 B
Text
27 lines
609 B
Text
function P(integer n,k)
|
|
return factorial(n)/factorial(n-k)
|
|
end function
|
|
|
|
function C(integer n,k)
|
|
return P(n,k)/factorial(k)
|
|
end function
|
|
|
|
function lstirling(atom n)
|
|
if n<10 then
|
|
return lstirling(n+1)-log(n+1)
|
|
end if
|
|
return 0.5*log(2*PI*n) + n*log(n/E + 1/(12*E*n))
|
|
end function
|
|
|
|
function P_approx(integer n, k)
|
|
return lstirling(n)-lstirling(n-k)
|
|
end function
|
|
|
|
function C_approx(integer n, k)
|
|
return lstirling(n)-lstirling(n-k)-lstirling(k)
|
|
end function
|
|
|
|
function to_s(atom v)
|
|
integer e = floor(v/log(10))
|
|
return sprintf("%.9ge%d",{power(E,v-e*log(10)),e})
|
|
end function
|