📜  置换群和置换的乘法(1)

📅  最后修改于: 2023-12-03 15:27:41.126000             🧑  作者: Mango

置换群和置换的乘法

什么是置换群?

置换群是一种特殊的群结构,其中群的元素是置换(一个对象集合的重新排列),群操作是置换的复合。

置换的表示方法

置换可以用多种方式表示,其中最常用的是循环表示法。

例如,${(1 2 3)}$ 表示一个将对象 $1$ 映射到 $2$,$2$ 映射到 $3$,$3$ 映射到 $1$ 的置换。

置换的乘法

置换的乘法是一个置换复合规则,按照左到右的顺序执行置换,结果是一个将对象集合重新排列的新置换。

例如,将置换 ${s1 = (1 2 3)}$ 和 ${s2 = (2 3 1)}$ 相乘:

$$s1 × s2 = (1 2 3) × (2 3 1) = (1 3)(2) $$

结果是一个将对象 $1$ 映射到 $3$,$3$ 映射到 $1$,$2$ 保持不变的新置换。

置换群的乘法表

有限置换群可以表示成一个小型的乘法表,在表格中,每个单元格包含两个置换的乘积。

例如,下面是一个有限置换群的乘法表,其中 $e$ 表示恒等置换:

| $\times$ | $e$ | $(1 2)$ | $(1 3)$ | $(2 3)$ | $(1 2 3)$ | $(1 3 2)$ | | --- | --- | --- | --- | --- | --- | --- | | $e$ | $e$ | $(1 2)$ | $(1 3)$ | $(2 3)$ | $(1 2 3)$ | $(1 3 2)$ | | $(1 2)$ | $(1 2)$ | $e$ | $(1 2 3)$ | $(1 3 2)$ | $(2 3)$ | $(1 3)$ | | $(1 3)$ | $(1 3)$ | $(1 3 2)$ | $e$ | $(1 2)$ | $(2 3)$ | $(1 2 3)$ | | $(2 3)$ | $(2 3)$ | $(1 2 3)$ | $(1 3 2)$ | $e$ | $(1 3)$ | $(1 2)$ | | $(1 2 3)$ | $(1 2 3)$ | $(2 3)$ | $(1 3)$ | $(1 2)$ | $(1 3 2)$ | $e$ | | $(1 3 2)$ | $(1 3 2)$ | $(2 1 3)$ | $(1 2 3)$ | $(1 3 2)$ | $e$ | $(2 3)$ |

程序实现

可以使用编程语言实现置换群和置换的乘法。

以下是 Python 代码示例:

class Permutation:
    def __init__(self, perm):
        self.perm = perm

    def __call__(self, x):
        """
        Returns the result of applying the permutation to x.
        """
        return self.perm[x]

    def __mul__(self, other):
        """
        Returns the product of two permutations.
        """
        new_perm = [0] * len(self.perm)
        for i in range(len(new_perm)):
            new_perm[i] = self(other(i))
        return Permutation(new_perm)

    def __repr__(self):
        return str(self.perm)

identity = Permutation(list(range(6)))
s1 = Permutation([1, 2, 0, 3, 4, 5])
s2 = Permutation([1, 0, 2, 3, 5, 4])
print(identity * s1 * s2) # prints [1, 2, 0, 3, 5, 4]

该代码实现了 Permutation 类,其中封装了置换的复合和应用函数。可以实例化多个 Permutation 对象,并使用乘法操作符将它们相乘。要注意,乘法操作符使用的是复合规则。

总结

置换群和置换的乘法是一种重要的数学结构,具有广泛的应用领域,如密码学、图像处理和计算机图形学。程序员可以使用编程语言实现置换群和置换的乘法,以便在实际应用中使用。