The OpenD Programming Language

nthPermutationImpl

bool
nthPermutationImpl
(
Range
)
(
auto ref Range range
,
ulong perm
)
if ()

Return Value

Type: bool

true in case the permutation worked, false in case perm had more digits in the factorial number system than range had elements. This case must not occur as this would lead to out of range accesses.

Examples

auto src = [0, 1, 2, 3, 4, 5, 6];
auto rslt = [4, 0, 6, 2, 1, 3, 5];

bool worked = nthPermutationImpl(src, 2982);
assert(worked);
assert(src == rslt);

Meta