📅  最后修改于: 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]
可以看到,不论哪个子群,都可以用一个元素来生成。这也就是循环群的子群都是循环的证明。