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

17 lines
390 B
Text

global function permute(integer n, sequence set)
--
-- return the nth permute of the given set.
-- n should be an integer in the range 1 to factorial(length(set))
--
sequence res
integer w
n -= 1
res = set
for i=length(set) to 1 by -1 do
w = remainder(n,i)+1
res[i] = set[w]
set[w] = set[i]
n = floor(n/i)
end for
return res
end function