简体   繁体   中英

Which of the growth rates log(log *n) and log*(log n) is faster?

As n gets large, of the two functions log*(log n) and log(log* n) will will be faster?

Here, the log* function is the iterated logarithm, defined here:

在此处输入图片说明

I suspect these are the same, just written differently, but is there any difference between them?

log* n is the iterated logarithm , which for large n is defined as

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

Therefore, log*(log n) = (log* n) - 1, since log* is the number of times you need to apply log to the value before it reaches some fixed constant (usually 1). Doing another log first just removes one step from the process.

Therefore, log(log* n) will be much smaller than log* (log n) = log* n - 1 since log x < x - 1 for any reasonably large x.

Another, more intuitive way to see this: the log* function is significantly better at compressing large numbers than the log function is. Therefore, if you wanted to take a large number and make it smaller, you'd get way more efficiency by computing log* n first to contract n as much as you can, then use log on that (log (log* n)) to pull down what's left.

Hope this helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM