置换
置换是代数中的基本元素. 它们有自然的非交换乘积(像矩阵那样),因而可以以紧凑的方式为高度非平庸的结构编码. 置换提供了一种可以表示任何有限群的方法,使之成为在数学、科学、工程甚至艺术等领域许多应用中的关键工具. 特别地,置换在离散对称性的描述中起核心作用.
置换,粗略地说,就是对一个集合的元素进行重新排列,更精确地说,是一个集合到它本身的一一对应. 这里仅考虑元素数目有限的集合. 一个 元素的集合的可能置换数是 ,所以即使对中等数目 ,就已经有,即差不多 个置换了.
本教程讨论在 Wolfram 语言中如何用轮换表示法来对置换进行操作. 另一教程 "置换列表" 则描述其与置换列表表示法的关系. 然后,其它的教程 "置换群" 和 "已命名的群" 描述如何处理置换群,"群论算法" 阐明如何在不用列出所有群元的情况下获取有关信息 .
Cycles | 以不相交轮换的形式表示一个置换时的头部 |
PermutationCyclesQ | 验证一个置换 |
在 Wolfram 语言中,一个置换的不相交轮换表示具有形式 Cycles[{cyc1,cyc2,…}],其中,cyci 是正整数的不相交列表. 在置换下,整数被映射到它们的右邻,而最后一个整数被映射到那个轮换的第一个数. 不在轮换内的整数被映射到它们本身,虽然它们也可以以长度为一的轮换的形式出现. 这种轮换称为 singletons(单元集)或 fixed points. 轮换的排序是无关紧要的,单个的轮换可以进行转动而不致引起置换的改变. 置换是自动正规化的,即每个轮换把最小的整数放在第一位,而所有轮换则按照它们的第一个整数的大小排序.
对于包含显式的数字列表的置换,句法会自动得到检查. 其它情况下,用户可以用函数 PermutationCyclesQ 来检查句法.
PermutationReplace | 一个置换下一个整数的像 |
PermutationSupport | 被置换所移动的整数的集合 |
PermutationLength | 被置换所移动的整数的数目 |
PermutationMax | 被置换所移动的最大整数 |
PermutationMin | 被置换所移动的最小整数 |
RandomPermutation | 生成准随机置换 |
通过函数 Permute,置换可以用来置换其他表达式的某些部分. 整数 被映射到整数 这件事被解释为部分 被移动到了部分 . Permute 永远不会改变一个表达式的元素的数目,它只是将它们重新排序.
Permute | 置换一个表达式的某些部分 |
FindPermutation | 返回联系两个具有相同元素的表达式的置换 |
应用一个置换列表表示和函数 Part 可以得到相同的结果:
置换列表也可以和函数 Permute 一起使用:
当只有一个参量时,FindPermutation 返回这样一个置换:该置换按照其正规排列生成一个表达式.
PermutationProduct | 置换的乘积(非交换) |
InversePermutation | 一个置换的逆 |
PermutationPower | 一个置换的整数幂(与自身或逆的乘积) |
PermutationOrder | 一个置换产生逆的最低正幂 |
对于两个置换 perm1 和 perm2 的乘积有两种可能的约定,取决于 PermutationProduct[perm1,perm2] 是先使用 perm1,然后使用 perm2 (称为从左到右的积),还是先使用 perm2,再使用 perm1 (从右到左的积). 按照在循环中将图像写为右邻的惯例,Wolfram 语言的 PermutationProduct 实际上是从左到右的积.
PermutationReplace 从右边作用,与乘积的从左到右特征一致:
Permute 也从右边作用:
作为 Wolfram 语言中的标准,有两种类型的相等检验:结构上的相等 (SameQ) 和数学上的相等 (Equal). 前者可以比较任何两个表达式,但后者在比较具有相同数据类型的数学表达式的时候,只返回 True 或 False. 在对表达式进行排序时情形也是一样:有结构上的(正规)次序,这是通过 Order 和 OrderedQ 来实现的;也有数学上的次序,由 Less 及相关函数给出.
任何次数的任何两个置换都可以检验其相等与排序. 这是通过按次序比较整数1、2、3 … 的像来完成的. 较小的置换对应较小的像,所以恒元置换总是排在第一. 这定义了数学上的次序. 正规次序比照标准规则,且有可能与数学上的次序不同.