关于对数大O符号(Big-O Notation regarding logarithms)

2019-06-28 05:59发布

我被问希望我能辨别的几个对数函数的大O符号的面试问题。 功能如下:

F(X)=日志5(x)

F(X)=日志(×5)

F(X)=日志(6 *登录x)的

F(X)=日志(日志x)的

我被告知,大O的第一和第二并不等同,第三和第四的位置不是在错误的猜测相反的等价物。 任何人都可以解释为什么他们是不等价的,以及他们的大O的呢?

Answer 1:

  1. 日志相同写入日志记录的日志的日志的日志x,它是x的非常缓慢生长的功能。
  2. 这相当于5日志X(重写幂日志内乘法外),这等同于对X。
  3. 这等同于登录6 +登录登录x,它相当于记录登录X。
  4. 这仅仅是日志中记录X。

所以,你必须为O(log日志中记录日志记录X),O(对X),O(日志记录x)和O(日志记录X),三个不同的大O类。

如果你的面试官说:3和4是不同的,要么他错了或者你记错的问题(发生的时间)。



Answer 2:

这是数学的问题:

  1. F(X)=日志5(x)
  2. F(X)=日志(×5)= 5 *登录X
  3. F(X)=日志(6 *登录X)=日志6 +日志(日志x)的
  4. F(X)=日志(日志x)的

因此,大O是

  1. 为O(log 5(X))
  2. 为O(log X)
  3. 为O(log(日志X))
  4. 为O(log(日志X))

因此,(1)和(2)是不等价的,但(3)和(4)(虽然他们来自不同的两种(1)和(2))



Answer 3:

f(x) = log^5(n)
f(x) = log(n^5) -> 5 log(n)
O(5 log(n)) < O(log(n)^5)

f(x) = log(6*log n) -> log(6)+log(log(n))
f(x) = log(log n) 
log(log n) < log(6) + log(log(n)) 

尽管日志(6)是一个常数,使得它们具有相同的直径:



Answer 4:

我假设你的意思是f(n)而不是f(x) 为1和2, log^5(n)相当于O(log log log log log(n))log(n^5) = 5 log(n) = O(log n)

对于3和4,我不同意。 log(6*log n) = log(6) + log(log n) = O(log log n) ,这是因为4相同的- O(log log n)



文章来源: Big-O Notation regarding logarithms