@permute(t:tab, n:numeric)
returns a new tab which contains the n th permutations of the elements of
t
. They are factorial s permutations, where s is the size of t
.
The first permutation is numbered 0 and corresponds to the permutation
which rearranges the elements of t
in an array t_0
such that they are
sorted increasingly. The tab t_0
is the smallest element amongst all
tab that can be done by rearranging the element of t
. The first
permutation rearranges the elements of in a tab t_1
such that
t_0 < t_1
for the lexicographic order and such that any other
permutation gives an array t_k
lexicographicaly greater than t_0
and t_1
. Etc.
The last permutation (factorial s - 1) returns a tab where all
elements of are in decreasing order.
For example:
$t := [1, 2, 3]
@permute($t, 0) == [1, 2, 3]
@permute($t, 1) == [1, 3, 2]
@permute($t, 2) == [2, 1, 3]
@permute($t, 3) == [2, 3, 1]
@permute($t, 4) == [3, 1, 2]
@permute($t, 5) == [3, 2, 1]
See also @sort.
See also Tab Manipulations @binary_search @car @cdr @clear [@clone] @concat @cons @copy @count @dim @domain @drop @empty @find @flatten @gnuplot @insert @iota @is_list @is_prefix @is_subsequence @is_suffix @lace @last @listify @map @max_val @median @member @normalize @occurs @parse @permute @push_back @push_front @range @reduce @remove @remove_duplicate @replace @reshape @resize @reverse @rotate @scan @scramble @size @slice @sort @sputter @stutter @succession @tab_history @tab_history_date @tab_history_rdate @take @to_num