RosettaCodeData/Task/Combinations-and-permutations/Phix/combinations-and-permutations-1.phix
2016-12-05 23:44:36 +01:00

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