代码之家  ›  专栏  ›  技术社区  ›  pauldoo

“log*”是什么意思?

  •  24
  • pauldoo  · 技术社区  · 14 年前

    我遇到了这个学期 O(log* N) 我在读一本关于数据结构的书。什么? log* 意思是?我不能 find it on Google 和Wolframalpha doesn't understand it either .

    4 回复  |  直到 7 年前
        1
  •  23
  •   paxdiablo    14 年前

    它是迭代对数。见 here 对于许多不同时间复杂性的描述,以及 here 有关迭代对数本身的更多详细信息。

    迭代对数是在结果变为一个或更少之前必须应用对数的次数。

        2
  •  26
  •   Darin Dimitrov    14 年前

    它叫 iterated logarithm function . 这是一个增长非常缓慢的功能。例如:

    • lg*(2) = 1
    • lg*(4) = 2
    • lg*(16) = 3
    • lg*(65536) = 4
    • lg*(2^65536) = 5 /注意,(2^65536)比可观测宇宙中的原子数大得多。/

    或者在大O的情况下,它可以被认为是一个恒定的时间。

        3
  •  5
  •   Manish Kumar    10 年前

    对数*(n)-“对数星n”称为“迭代对数”

    简单来说,您可以假定log*(n)=log(log(log(…(log*(n)))

    对数*(n)非常强大。

    例子:

    1)对数*(n)=5,其中n=宇宙中的原子数

    2)使用3种颜色的树着色可以在日志*(n)中完成,而使用2种颜色的树着色就足够了,但是复杂度将是O(n)。

    3)找出已知欧几里得最小生成树的一组点的Delaunay三角剖分:随机O(n log*n)时间。

    我希望你能想象 log*(n) 就像沃尔夫拉玛尔帕上的这个 Check here

        4
  •  2
  •   Harry Berry    7 年前

    Log*是在达到小于或等于1的值之前应用Log函数所需的次数。例如:log*(16)=3,因为log (原木) (原木) (16))=1。

    出于实际目的,您可以将其视为常量,因为此函数增长非常缓慢。