循環 | C. 1 1 _ | 排列 |
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 端視要由identity排列 i.#p (為 0,若 p 不為排列)得到 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 may be used,且視作其餘數modulo #b
。 若 q 未被封裝,且 (#b)|q 的分子各異,則 q C. b 同於 p C. 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| +-----+-----+ |
動詞 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 1 7 4 5 2 0 6 6 9 +/ , (CT #m) * *// m _225 -/ .* m 行列式 _225