定义
如果您已经知道组,有限组和子组的定义,则可以跳过此部分。
团体
在抽象代数中,一个组是一个元组(G,∗),其中G是一个集合,而∗是一个函数G×G→G,使得下式成立:
封闭:对于所有的x,y在ģ,X * Y也是ģ(由事实暗示*是一个函数G×G ^→G )。
关联:对所有X,Y,Z在ģ,(X * Y)* Z = X *(Y * Z) 。
同一性:存在一个元素ê在ģ使得对于所有X中ģ,X * E = X = E * X。
逆:对于每个X在ģ,存在一个元素ý在ģ使得X * Y = E = Y * X,其中ê是在前面的项目符号点中提到的单位元。
有限群体
甲有限组是一组(G,*) ,其中G ^是有限的,即,具有有限多个元件。
亚组
组(G,∗)的子组 (H,∗)使得H是G的子集(不一定是适当的子集),而(H,∗)也是一个组(即满足上述4个条件)。
例子
考虑二面体组D 3 (G,∗),其中G = {1,A,B,C,D,E},并且∗在下面定义(这样的表称为Cayley表):
∗ | 1个ABCDE -+ ---------------------- 1 | 1个ABCDE A | AB 1 DEC B | B 1 AECD C | CED 1 BA D | DCEA 1 B E | EDCBA 1
在这个组中,身份为1。另外,甲和乙是彼此的逆,而1,Ç,d,和Ë本身的分别的倒数(的倒数1是1,逆Ç是Ç,的倒数d是d,并且E的倒数是E)。
现在,我们可以验证其中H = {1,A,B}的(H,∗)是(G,∗)的子组。对于关闭,请参考下表:
∗ | 1 AB -+ ---------- 1 | 1 AB A | AB 1 B | B 1 A
其中所有可能的对中元件的ħ下*给在一个成员ħ。
关联性不需要检查,因为H的元素是G的元素。
身份是1。与组标识必须相同。同样,组中的身份必须唯一。(你能证明这个吗?)
对于逆,请检查A的逆是B,它是H的成员。B的倒数是A,它也是H的成员。1的倒数本身仍然是,不需要检查。
任务
描述
给定一个有限群(G,∗),找到其子群的数量。
输入值
对于一个组(G,∗),您将收到一个大小为n×n的二维数组,其中n是G中的元素数。假设索引0
是标识元素。2D数组将代表乘法表。例如,对于上面的组,您将收到以下2D数组:
[[0, 1, 2, 3, 4, 5],
[1, 2, 0, 4, 5, 3],
[2, 0, 1, 5, 3, 4],
[3, 5, 4, 0, 2, 1],
[4, 3, 5, 1, 0, 2],
[5, 4, 3, 2, 1, 0]]
例如,您可以看到3 ∗ 1 = 5,因为a[3][1] = 5
,a
上面的2D数组在哪里。
笔记:
- 您可以使用1索引2D数组。
- 标识的行和列可以省略。
- 您可以视需要使用其他格式,但必须保持一致。(即,您可能希望最后一个索引改为标识,等等)
输出量
代表组中子组数的正数。
例如,对于上面的组,每当H =时(H,∗)是(G,∗)的子组
- {1}
- {1,A,B}
- {1,C}
- {1,D}
- {1,E}
- {1,A,B,C,D,E}
因此,有6个子组,此示例的输出应为6
。
提示
您可以阅读我链接到的文章。这些文章包含有关组和子组的定理,这可能对您有用。
计分
这是代码高尔夫球。以最低字节数获胜的答案。
0
标识元素,那么将运算符描述为乘法会令人困惑...