logn log complexity algorithm complexity-theory logarithm iterated-function

algorithm - log - o n !)



¿Qué es O(log*N)? (3)

¿Qué es O(log* N) ?

Lo sé a lo grande ... Oh, el log* es desconocido.


El bit log* N es un algoritmo iterado que crece muy lentamente, mucho más lento que el log N Básicamente, simplemente mantiene ''registrando'' iterativamente la respuesta hasta que quede por debajo de uno (Ej: log(log(log(...log(N))) ), y la cantidad de veces que tuvo que log() es la respuesta.

De todos modos, esta es una pregunta de cinco años sobre , ¿pero no hay código? (!) Arreglemos eso: aquí hay implementaciones para las funciones recursiva e iterativa (ambas dan el mismo resultado):

public double iteratedLogRecursive(double n, double b) { if (n > 1.0) { return 1.0 + iteratedLogRecursive( Math.Log(n, b),b ); } else return 0; } public int iteratedLogIterative(double n, double b) { int count=0; while (n >= 1) { n = Math.Log(n,b); count++; } return count; }


log * (n) - "log Star n" , conocido como "logaritmo iterado"

En palabras simples puede asumir log * (n) = log (log (log (..... (log * (n))))

log * (n) es muy poderoso.

Ejemplo:

1) Log * (n) = 5 donde n = Número de átomos en el universo

2) Tree Coloring usando 3 colores se puede hacer en log * (n) mientras que colorear Tree 2 colores son suficientes pero la complejidad será O (n) a continuación.

3) Encontrar la triangulación de Delaunay de un conjunto de puntos que conoce el árbol de expansión mínimo euclidiano: tiempo de O (n log * n) aleatorio.


O( log* N ) es " logaritmo iterado ":

En informática, el logaritmo iterado de n, log * n escrito (generalmente, "estrella de registro"), es el número de veces que la función de logaritmo debe aplicarse iterativamente antes de que el resultado sea menor o igual a 1.