Permute
更多信息
- Permute 适用于任何非原子表达式,作用于表达式的第一层.
- Permute 对一个表达式的元素重新排序但从不改变其长度.
- 置换 perm 可以以不相交轮换或者置换列表的形式给出.
- 当 perm 以不相交轮换的形式 Cycles[{cyc1,cyc2,…}] 给出时,一个轮换 {p1,p2,…} 将以轮换的方式移动 expr 的元素,使得 expr[[pi]] 被移动到位置 pi+1.
- 当 perm 以置换列表的形式给出时,其结果与使用 Permute[expr,PermutationCycles[perm]] 等价.
- 一个置换群 gr 可以以 PermutationGroup 为头部,或者对于已命名的形式,以 SymmetricGroup, AlternatingGroup … 为头部,通过生成元来指定.
范例
打开所有单元 关闭所有单元基本范例 (3)
Permute[{a, b, c, d, e}, Cycles[{{1, 3, 2}}]]Permute[{a, b, c, d, e}, {3, 1, 2}]alphabet = CharacterRange["a", "z"]Permute[alphabet, Cycles[{{1, 26}}]]Permute[alphabet, Cycles[{{1, 6, 18, 2}, {3, 20, 11}}]]Permute[h[a, b, c, d], AlternatingGroup[4]]范围 (3)
Permute[head[a, b, c, d, e], Cycles[{{1, 3}, {2, 4}}]]Permute[head[a, b, c, d, e], PermutationGroup[{Cycles[{{1, 2}}], Cycles[{{1, 3}, {2, 4}}]}]]Permute[head[a, b, c, d, e], {3, 4, 1, 2}]Permute[head[a, b, c, d, e], {}]应用 (1)
square[{c1_, c2_, c3_, c4_}] := Graphics[{{c1, Line[{{0, 0}, {0, 1}}]}, {c2, Line[{{0, 1}, {1, 1}}]}, {c3, Line[{{1, 1}, {1, 0}}]}, {c4, Line[{{1, 0}, {0, 0}}]}}, ImageSize -> 50]square /@ Permute[{Blue, Green, Red, Yellow}, DihedralGroup[4]]属性和关系 (6)
Permute 永远不改变一个表达式的成员的数目. 它只是将它们重新排列:
expr = head[a, b, c, d, e, f]Permute[expr, Cycles[{{1, 4, 2}}]]然而,Part 可能会改变成员的数目:
list = PermutationList[Cycles[{{1, 4, 2}}]]expr[[list]]Permute[expr, list]当应用于单位置换列表时,Permute 是 PermutationReplace 的逆运算:
perm = Cycles[{{1, 5, 3}, {4, 2, 8}}];Permute[Range[10], perm]PermutationReplace[%, perm] === Range[10]另一个实现 Permute 的逆作用的方式是用 FindPermutation:
expr = head[c, a, b, d, e, f]newexpr = Permute[expr, Cycles[{{1, 4, 3, 2}}]]FindPermutation[expr, newexpr]Permute 相对于置换的乘积是一个右作用:
expr = F[a, b, c, d, e];
perm1 = Cycles[{{1, 4, 3}, {2, 5}}];
perm2 = Cycles[{{1, 5, 3, 2, 4}}];Permute[Permute[expr, perm1], perm2] === Permute[expr, PermutationProduct[perm1, perm2]]Dimensions[Transpose[array,perm]] 等价于 Permute[Dimensions[array],perm]:
array = Array[a, {2, 3, 4, 5}];perm = {3, 1, 4, 2};Dimensions[Transpose[array, perm]]Permute[Dimensions[array], perm]计算同样的 Cycles 形式的置换:
cperm = PermutationCycles[perm]Dimensions[Transpose[array, cperm]]Permute[Dimensions[array], perm]对向量应用 Permute 相当于从右侧将矩阵与向量相乘:
v = {C[1], C[2], C[3], C[4], C[5]};
perm = Cycles[{{1, 4, 3}, {2, 5}}];Permute[v, perm] === v.PermutationMatrix[perm]可能存在的问题 (1)
perm = {3, 1, 2};Permute 把第一个对象放置在第三个位置,把第二个对象放置在第一个位置,把第三个对象放置在第二个位置:
Permute[{a, b, c}, perm]Part 把第三个对象放置在第一个位置,把第一个对象放置在第二个位置,把第二个对象放置在第三个位置:
Part[{a, b, c}, perm]Permute[{a, b, c}, InversePermutation[perm]]Part[{a, b, c}, InversePermutation[perm]]相关指南
-
▪
- 置换
文本
Wolfram Research (2010),Permute,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Permute.html.
CMS
Wolfram 语言. 2010. "Permute." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Permute.html.
APA
Wolfram 语言. (2010). Permute. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Permute.html 年
BibTeX
@misc{reference.wolfram_2026_permute, author="Wolfram Research", title="{Permute}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/Permute.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_permute, organization={Wolfram Research}, title={Permute}, year={2010}, url={https://reference.wolfram.com/language/ref/Permute.html}, note=[Accessed: 02-November-2026]}