L符号
L符号是个类似大O符号的渐近符号,标记为,多用于表示特定算法的计算复杂性。
定义
L符号的定义如下:
其中,c为一正实数,且为一实数。
L符号主要用于计算数论,表示困难数论问题之算法的复杂性,如整数分解的筛法及离散对数的解法。L符号可简化对这些算法的分析,以表示主要项,则用以表示其他较小的项。
当为0时,
是个ln n的多项式函数;而当为1时,
则会是ln n的指数函数(即n的多项式函数)。
当介于0与1之间时,L符号为ln n的次指数(与超越多项数)函数。
例子
许多通用的整数分解算法都具有次指数复杂度,其中目前已知最快的为普通数域筛选法,其时间复杂度估算为
其中,。在普通数域筛法出现前,最快的整数分析算法为二元筛法,其时间复杂度估算为
对椭圆曲线离散对数问题而言,目前已知最快的通用算法为大步小步法,其时间复杂估算为群阶的开平方。以L符号表示为
目前已知最快测试一个数是否为质数的算法为AKS质数测试,其时间复杂度为多项式时间,以L符号表示为
其中,c已被证明至多为6[1]。
历史
最早出现L符号的文献为卡尔·帕梅朗斯所著的论文《一些整数分解算法的分析与比较》(Analysis and comparison of some integer factoring algorithms)[2]。在此论文中,L符号的参数只有,其中的则因其所分析的算法而设为。
具有两个参数的L符号则由阿尔扬·伦斯特拉及亨德里克·伦斯特拉在其论文《数论中的算法》(Algorithms in Number Theory)[3]中首次引入,用以分析唐·科普斯密思的离散对数算法,为现在数学文献中最常使用的形式。
参考资料
- ^ Hendrik W. Lenstra Jr.; Carl Pomerance. Primality testing with Gaussian periods (PDF). 2011 [2018-04-01]. (原始内容 (PDF)存档于2012-02-25).
- ^ Carl Pomerance. Analysis and comparison of some integer factoring algorithms (PDF). Computational Methods in Number Theory, Part 1. Mathematisch Centrum. 1982: 89–139 [2018-04-01]. (原始内容存档 (PDF)于2021-02-04).
- ^ Arjen K. Lenstra; Hendrik W. Lenstra, Jr. Algorithms in Number Theory. Handbook of Theoretical Computer Science (vol. A): Algorithms and Complexity. 1991.