Links Argument von A.
ist eine Liste der Permutation Indizes.
Rechtes Argument von A.
ist die Liste permutiert werden.
Die erste (unpermittierte) Liste hat den Index 0 und es geht von dort lexikographisch [*] weiter.
Egs:
(0) A. 'a';'b';'c'
┌─┬─┬─┐
│a│b│c│
└─┴─┴─┘
(1 0) A. 1 2 3
1 3 2
1 2 3
(0 1 2) A. 5 1 2
5 1 2
5 2 1
1 5 2
Um alle Permutationen einer Liste, die Sie anfordern alle (! #y)
(Fakultät Anzahl von Elementen der Liste y
permutiert werden) von ihnen, durch alle Indices 0 ... (n-1)
anfordernden: i. (! # y)
:
(i.!#y) A. y
[*]: lexikografisch der impliziten Liste i. # y
. Das heißt, A.
permutiert immer die einfache Liste 0 ... n
und wendet diese Permutation dann auf Ihre ursprüngliche Liste an: permutation { initial_list
.
Etwas einfacher als das: (i. @! @ # A.)) '123' – Roman