| Индекс Перестановки | 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| |
+----+-+