假设我有两个计算复杂性:
O(k * M(n))
- modular exponentiation的计算复杂度,其中k
是指数位数,n
是位数,M(n)
是Newton's division algorithm的计算复杂性。
O(log^6(n))
- 算法的计算复杂性。
如何确定这两种复杂性中的哪一种不那么“昂贵”?事实上,符号M(n)
是令我最困惑的。
答案 0 :(得分:1)
首先,对于任何给定的固定n
,只需将其放入运行时函数(没有Landau O,请注意)并进行比较。
渐近地,你可以将一个函数(resp它的Landau项)除以另一个函数,并将n
的商数限制为无穷大。如果它为零,则提名者中的函数正常生长,渐近地弱于另一个。如果它是无穷大,它会更快地生长。在所有其他情况下,具有相同渐近长度的常数因子(即大Theta)。如果商在极限中为1
,则它们渐近相等。
答案 1 :(得分:0)
好的,根据this Wikipedia entry关于将牛顿方法应用于除法的问题,您必须执行O(lg(n))
步骤来计算n
除法的位。每一步都采用乘法和减法,因此我们采用简单的“教科书”方法时会有一点复杂度O(n^2)
。
因此,第一种方法的复杂性为O(lg(n) * n^2)
。它比第二种方法渐近slower。