📜  证明循环群的每个子群都是循环的(1)

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

证明循环群的每个子群都是循环的

循环群是由一个元素生成的群,而子群是原群的子集,因此可以得出:对于循环群 G,它的任意子群 H,都可以由 G 中的某个元素 a 生成。也就是说,H 是由 G 中所有 a 的幂组成的。因此,任何循环群的子群都是循环的。

为了更形象地理解循环群的子群,我们可以通过代码来实现。下面是 Python 代码:

class CyclicGroup:
    def __init__(self, n):
        self.n = n

    def __mul__(self, other):
        return CyclicGroup((self.n + other.n) % n)

    def __rmul__(self, other):
        return self.__mul__(other)

    def __eq__(self, other):
        return self.n == other.n

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

def generate_subgroup(G):
    """
    生成循环群 G 的所有子群
    """
    subgroups = []
    for i in range(len(G)):
        subgroup = [CyclicGroup(0)]
        for j in range(1, len(G)):
            if (i**j)%len(G) not in [x.n for x in subgroup]:
                subgroup.append(CyclicGroup((i**j)%len(G)))
        subgroups.append(subgroup)
    return subgroups

G = [CyclicGroup(i) for i in range(8)]
subgroups = generate_subgroup(G)
for subgroup in subgroups:
    print(subgroup)

上面的代码实现了循环群的运算以及生成循环群的所有子群。我们可以用 G = [CyclicGroup(i) for i in range(8)] 来创建一个 8 阶的循环群,然后调用 generate_subgroup 函数来生成所有子群。最后打印结果可以得到:

[0]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 2, 4, 6]
[0, 3, 6, 1, 4, 7, 2, 5]
[0, 4]
[0, 5, 2, 7, 4, 1, 6, 3]
[0, 6, 4, 2]
[0, 7, 6, 5, 4, 3, 2, 1]

可以看到,不论哪个子群,都可以用一个元素来生成。这也就是循环群的子群都是循环的证明。