Индекс Перестановки | A. 1 0 _ | Переставить |
Если T таблица всех !n перестановок
порядка n , упорядоченных в лексикографическом порядке
(т.е., /:T
есть i.!n), тогда k называется
индексом перестановки k{T . A. в применении к циклической или прямой перестановке дает ее индекс: A. 0 3 2 1 есть 5, так же как A. 3 2 1 , A.<3 1 и A.0;2;3 1 . |
Выражение k A. b переставляет элементы b
при помощи перестановки порядка #b с индексом k .
|
(A. 0 3 2 1) , (A. <3 1) 5 5 A. |. i.45 119622220865480194561963161495657715064383733759999999999 <: ! 45x 119622220865480194561963161495657715064383733759999999999 tap=: i.@! A. i. NB. Таблица всех перестановок (tap 3);(/: tap 3);({/\ tap 3);(/:{/\ tap 3) +-----+-----------+-----+-----------+ |0 1 2|0 1 2 3 4 5|0 1 2|0 1 5 2 4 3| |0 2 1| |0 2 1| | |1 0 2| |1 2 0| | |1 2 0| |2 0 1| | |2 0 1| |1 2 0| | |2 1 0| |1 0 2| | +-----+-----------+-----+-----------+В частности, 1 A. b меняет местами два последних элемента b, , _1 A. b переставляет их в обратном порядке 3 A. b , а 4 A. b циклически проворачивает последние три элемента b. Например:
b=: 'ABCD' (0 3 2 1{b);(0 3 2 1 C.b);((<3 1)C.b);(3 4 A.b) +----+----+----+----+ |ADCB|ADCB|ADCB|ACDB| | | | |ADBC| +----+----+----+----+ (_19 5 A. b) ; (_19 |~ ! # b) +----+-+ |ADCB|5| |ADCB| | +----+-+