我被告知“任何指数都胜过任何对数”。
但是当指数在0和1之间时,对数的执行时间不会变得更快吗?因此,通过该逻辑,它将是f = O(g)
我无法选择是否遵循我的直觉或我被告知的内容,但我被告知可能并不完全准确。
答案 0 :(得分:3)
我们在这里尝试一些数学。一个重要的事实是对数函数是单调递增的,这意味着如果
log f(x)≤logg(x)
然后
f(x)≤g(x)
现在,让我们看看这里做了什么。我们有两个函数,x 0.1 和log 10 x。如果我们拿走他们的日志,我们就会得到
log(x 0.1 )= 0.1 log x
和
log(log 10 x)= 10 log log x
由于log log x比log x增长得慢得多,直观地我们可以看到函数x 0.1 最终将超过log 10 x。
现在,让我们正式化这个。我们想要找到x的某些值,以便
x 0.1 > log 10 x
让我们假设这些是基数为10的对数,只是为了使数学更容易。如果我们假设某些k的x = 10 k ,我们就得到了
(10 k ) 0.1 ≥log 10 10 k
10 0.1 k > log 10 10 k
10 0.1 k > ķ
现在,取k = 100.现在我们有了
10 0.1 * 100 > 100
10 10 > 100
这显然是真的。由于两个函数都是单调递增的,这意味着对于x≥10 100 ,确实
x 0.1 > log 10 x
这意味着x 0.1 = O(log 10 k)不为真。
希望这有帮助!
答案 1 :(得分:1)
渐近分析实际上是关注长期关系(因为n假定值越大,函数的值如何比较)?它也忽略了常数,这就是为什么你有时会看到像f(x)= 10000000 * x = O(x ^ 2)这样的奇怪情况。
对于n
,f(n) > g(n)
的大值,这才是真正重要的。
答案 2 :(得分:0)
使用限制规则验证n^0.1 = big omega(log^10(n))
的另一种方法是什么?
限制规则是:
限制为n->无穷大f(n)/ g(g)。
如果极限为正无穷大,则f(n)!= O(g(n))& g(n)= O(f(n))或f(n)=大欧米茄(g(n))
如果限制为0,则f(n)= O(g(n))& g(n)!= O(f(n))
如果限制是正实数,则f(n)= O(g(n))& g(n)= O(f(n))或f(n)=大theta(g(n))
对于这个问题:
设f(n)= O(n ^ 0.1)并且让g(n)= log ^ 10(n)
这给了我们限制:
限制为n->无穷大(n ^ 0.1)/(log ^ 10(n))
对限制使用L'Hospital's
规则10次:
限制为n->无穷大((0.1)^ 10 * ln ^ 10(b)* n ^ 0.1)/(10!)其中b是对数的基础
由于n项仅在分子中,因此极限接近无穷大。
按限制规则
log ^ 10(n)= O(n ^ 0.1)& n ^ 0.1!= O(log ^ 10(n)或n ^ 0.1 =大欧米茄(log ^ 10(n))。