【问题标题】:Which of the growth rates log(log *n) and log*(log n) is faster?log(log *n) 和 log*(log n) 哪个增长率更快?
【发布时间】:2013-10-04 03:02:55
【问题描述】:

随着 n 变大,log*(log n) 和 log(log* n) 这两个函数中的哪个会更快?

这里,log*函数是迭代的对数,定义在这里:

我怀疑它们是一样的,只是写法不同,但它们之间有什么区别吗?

【问题讨论】:

  • 如果你的星号是用来表示“logstar”又名n log n,你可能想这样重写它,因为SO已经以我想你不打算的方式解析它们
  • 好电话,不知道我从哪里得到的
  • 如果 log* 是某事的简写,我们将不胜感激。

标签: algorithm math big-o logarithm iterated-logarithm


【解决方案1】:

log* n 是iterated logarithm,对于较大的 n 定义为

log* n = 1 + log*(log n)

因此,log*(log n) = (log* n) - 1,因为 log* 是在该值达到某个固定常数(通常为 1)之前需要将 log 应用于该值的次数。先做另一个日志只会从流程中删除一个步骤。

因此,log(log* n) 将比 log* (log n) = log* n - 1 小得多,因为对于任何相当大的 x,log x

另一种更直观的理解方式:log* 函数在压缩大数字方面显着优于 log 函数。因此,如果您想取一个较大的数字并使其更小,您可以通过首先计算 log* n 以尽可能多地收缩 n,然后使用 log on that (log (log* n)) 来获得更高的效率拉下剩下的。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2018-12-15
    • 2020-06-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多