摘要
我们考虑计算泛型群中元素的顺序的问题。两种标准算法,Pollard的rho方法和Shanks的baby-steps giant-steps技术,都使用[theta](N^1/2)群运算来计算abs([alpha])=N。已经推测了[omega](N*1/2)的下限。我们反驳了这个猜想,提出了一个复杂度为o(N^1/2)的通用算法。当N是素数时,运行时间是O((N/loglogN)^1/2),但对于将近一半的整数N…,复杂性是O(N^1/3)。如果只需要在一系列随机问题中取得一次成功,则运行时间是次指数的。我们证明了通用算法可以计算所有[alpha]。。。近似线性时间加上N=[lambda](S)的单阶计算成本,其中[lambda(S)=lcm[alpha]over[alpha]。。。对于阿贝尔群,随机S…G或常数大小足以计算群的指数[lamda](G)。在计算了[lambda](G)之后,我们证明了在大多数情况下,阿贝尔群G的结构可以通过额外的O(N^[delta]/4)群运算来确定,给定了O(N_[delta])在abs(G)=N上的界。对于有限阿贝尔群的许多分布,中值复杂度约为O(N_1/3),而O(N^1/2)除了极端情况外,其他所有情况都是如此。基于离散对数问题的类似边界,假设了[omega](N^1/2)的下限。我们将这些结果应用于计算虚二次数域的理想类组,这是泛型算法的标准测试用例。使用通用算法对discriminant-4(10+1)进行的记录类群组计算,在Sun SparcStation4上15天的时间里,涉及了约2.4亿次群组操作。我们用1/1000的组操作完成相同的任务,在PC上花费不到3秒的时间。在许多情况下,与非泛型算法进行类组计算的比较也是有利的。我们成功地用包含100个以上数字的判别式计算了几个类组。这些被认为是有史以来计算出的最大的阶级群体