>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

Циклы C.  1 1 _ Разместить

Если p — перестановка атомов i.n, то p называется вектором перестановки порядка n; а если n=#b, то p{b переставляет элементы b соответственно.

C.p дает список упакованных списков атомов i.#p, называемую стандартным циклическим представлением перестановки p . Тоесть, если p=:4 5 2 1 0 3, то C.p есть (,2);4 0;5 3 1 , поскольку перестановка p перемещает в позицию 2 элемент 2, в 4 элемент 0, в 0 элемент 4, в 5 элемент 3, в 3 элемент 1, и в 1 элемент 5. Монада C. обратна сама себе: в применении к стандартному циклическому представлению она дает соответствующий вектор перестановки.

Представление данной перестановки циклами неоднозначно; стандартная форма единственна в силу следующих дополнительных ограничений: циклы не пересекаются и полны (т.е., атомы упакованных элементов вместе представляют собой вектор перестановки); каждый упакованный цикл поворачивается так, чтобы он начинался со своего наибольшего элемента; и упакованные циклы располагаются по возрастанию своих первых элементов.

C. расширено до неотрицательных нестандартных случаев, при этом аргумент q считается представлением перестановки порядка 1+>./; q .

Монада C.!.2 вычисляет четность перестановки p , равную 1 или _1 в зависимости от того — четно или нечетно число парных перестановок, требуемое для получения p из тождественной перестановки i.#p 0 если p не перестановка). Например:
   ] x=: 2 , (i.4) ,: 1 0 2 3 
2 2 2 2
0 1 2 3
1 0 2 3
   C.!.2 x
0 1 _1
  Если p и c являются стандартным и циклическим представлением перестановки порядка #b, то p C. b и c C. b размещают элементы b соответственно. Аргументы p и c могут быть определены нестандартным образом. В частности, можно использовать отрицательные целые вплоть до -#b , интерпретируемые как остатки от их деления на #b .

Если q не упакован, а элементы (#b)|q все разные, то q C. b эквивалентно p{b , где p есть стандартная форма q , определяемая как p=:((i.n)-.n|q),n|q , для n=:#b . Другими словами, позиции, перечисленные в q , перемещаются в конец.

Если q упаковка, элементы (#b)|>j{q должны быть разными для всех j , и упаковки применяются последовательно. Например:
   (2 1;3 0 1) C. i.5
1 2 3 0 4

   (<2 1) C. (<3 0 1) C. i.5
1 2 3 0 4

   q=: C. p=: 1 2 3 0 4 [ a=: 'abcde'
   q ; (q C. a) ; (p C. a) ; (p { a)
+-----------+-----+-----+-----+
|+-------+-+|bcdae|bcdae|bcdae|
||3 0 1 2|4||     |     |     |
|+-------+-+|     |     |     |
+-----------+-----+-----+-----+

   a ; (<0 _1) C. a
+-----+-----+
|abcde|ebcda|
+-----+-----+

Дополнительные примеры:

   ] p=: 22 ?. 22               NB. Случайная перестановка порядка 22
16 18 21 8 6 15 10 14 7 11 0 2 5 3 9 12 20 17 4 19 13 1

   C. p                         NB. Ее циклы
+-------+--+--+-----------------------------------------+
|15 12 5|17|19|21 1 18 4 6 10 0 16 20 13 3 8 7 14 9 11 2|
+-------+--+--+-----------------------------------------+

   *./ #&> C. p          NB. НОК длин циклов
51

   # ~. p&{^:(i.200) i.#p   NB. Размер подгруппы, генерируемой p
51
Глагол CT вычисляет тензор Леви-Чивита (абсолютно анти-симметричный тензор) порядка n в виде разреженного массива; элемент (<i){CT n есть четность перестановки индексов i .
   CT=: 3 : '(C.!.2 p) (<"1 p=. (i.!y) A. i.y)}1$.$~y'

   CT 3
0 1 2 |  1
0 2 1 | _1
1 0 2 | _1
1 2 0 |  1
2 0 1 |  1
2 1 0 | _1

   ($.^:_1 CT 3) ; ,"2 ' ' ,"1 '012'{~ >{ i.&.> $~3
+--------+------------+
| 0  0  0| 000 001 002|
| 0  0  1| 010 011 012|
| 0 _1  0| 020 021 022|
|        |            |
| 0  0 _1| 100 101 102|
| 0  0  0| 110 111 112|
| 1  0  0| 120 121 122|
|        |            |
| 0  1  0| 200 201 202|
|_1  0  0| 210 211 212|
| 0  0  0| 220 221 222|
+--------+------------+

   (CT 3) -: C.!.2&> { i.&.> $~ 3
1

   ] m=: ?. 3 3$10
6 5 9
2 4 9
0 7 0

   +/ , (CT #m) * *// m
_252
   -/ .* m                    NB. Детерминант
_252


>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь