如果您不熟悉辫子理论,建议您先阅读本节。这个问题假设您至少熟悉手头的概念,并假设您熟悉小组理论
让我们定义σ Ñ为其中所述编织物Ñ从顶部越过所述第链(一个索引)的n + 1个链,和σ Ñ -是的逆σ Ñ(即在N + 1个链与第n个链交叉)。
编织物组乙Ñ然后通过产生<σ 1,σ 2,σ 3,。。。,σn -1 >。因此,B n上的每个编织都可以写成σ编织的乘积。1个
确定一组上的两个辫子是否相等并不是一件容易的事。这可能是很明显,σ 1 σ 3 =σ 3 σ 1,但它是不那么明显的是,例如σ 2 σ 1 σ 2 =σ 1 σ 2 σ 1。2
因此,问题是“如何确定两个辫子是否相同?”。上面的两个示例分别代表了这一点。通常,以下关系称为阿丁关系:
σ 我 σ Ĵ =σ Ĵ σ 我 ; i-j> 1
σ 我 σ i + 1的 σ 我 =σ i + 1的 σ 我 σ i + 1的
我们可以将这两个关系与组公理结合使用,以证明任何相等的辫子都是相等的。因此,如果重复应用这些关系,则两个辫子是相等的,群公理可以证明这一点。
任务
您将编写一个程序或函数来接受两个辫子,并确定它们是否相等。您也可以选择取一个正整数来表示组的顺序。
这是一个代码问题,因此答案将以字节计分,字节越少越好。
输入输出
您应该将辫子表示为生成器(或任何等效结构,例如矢量)的有序列表。您可以用任何合理的形式表示生成器(例如,整数,正整数的两个元组和布尔值)。
与标准决策问题规则相提并论,您应该输出两个不同的值之一,即接受拒绝。
测试用例
[], [] -> True
[1,-1], [] -> True
[1,2,1], [2,1,2] -> True
[1,3], [3,1] -> True
[1,3,2,1],[3,2,1,2] -> True
[1,4,-4,3,2,1], [3,2,1,2] -> True
[2,2,1], [2,1,2] -> False
[1,2,-1], [-1,2,1] -> False
[1,1,1,2],[1,1,2] -> False
1:请注意,虽然B n满足组的所有属性,但是对辫子组的运算不是可交换的,因此,该组不是abelian。
2:如果你想验证自己这一点,我建议将σ 1 -双方,如果你在纸上画的两头在外,或将它们与实际模型的字符串应该清楚为什么是这样的情况。
[],[]
[1, 4, -4, 3, 2, 1], [3, 2, 1, 2] => TRUE