¿Es log (n!) = Θ (n · log (n))?


217

Debo mostrar que log ( n !) = Θ ( n · log ( n )) .

Se dio una pista de que debería mostrar el límite superior con n n y mostrar el límite inferior con ( n / 2) ( n / 2) . Esto no me parece tan intuitivo. ¿Por qué sería ese el caso? Definitivamente puedo ver cómo convertir n n en n · log ( n ) (es decir, registrar ambos lados de una ecuación), pero eso es un poco trabajar hacia atrás.

¿Cuál sería el enfoque correcto para abordar este problema? ¿Debo dibujar el árbol de recursión? No hay nada recursivo sobre esto, por lo que no parece un enfoque probable.


1
Realmente deberías escribirlo incluyendo "as n -> ∞"
MartW

2
Ejercicio divertido: use el truco similar para mostrar que la serie armónica 1/1 + 1/2 + 1/3 + 1/4 + ... diverge al infinito.
Yoo

10
¿No debería ser esto en cs.stackexchange.com?
CodyBugstein

55
@CodyBugstein, cs.stackexchange.com no existía cuando se hizo la pregunta
MrMartin

Respuestas:


303

Recuerda eso

log(n!) = log(1) + log(2) + ... + log(n-1) + log(n)

Puedes obtener el límite superior por

log(1) + log(2) + ... + log(n) <= log(n) + log(n) + ... + log(n)
                                = n*log(n)

Y puede obtener el límite inferior haciendo algo similar después de tirar la primera mitad de la suma:

log(1) + ... + log(n/2) + ... + log(n) >= log(n/2) + ... + log(n) 
                                       = log(n/2) + log(n/2+1) + ... + log(n-1) + log(n)
                                       >= log(n/2) + ... + log(n/2)
                                        = n/2 * log(n/2) 

55
Esta es una prueba muy buena para el límite superior: log (n!) = Log (1) + ... + log (n) <= n log (n) => log (n!) = O (n log n ) Sin embargo, para probar el límite inferior (y, en consecuencia, el gran tetha), probablemente necesitará la aproximación de Stirling.
Mehrdad Afshari

33
No necesita la aproximación de Sterling para un límite inferior. log (n!) = log (1) + ... + log (n)> = log (n / 2) + ... + log (n)> = n / 2 * log (n / 2) = Omega (n log n).
Keith Randall el

2
@Keith: Todavía no lo entiendo. ¿Podría (o alguien) ampliar algunos términos más para mí en la parte "..." de "log (n / 2) + ... + log (n)" por favor? ¡Gracias!
j_random_hacker

66
@j_random_hacker: log(n/2) + log(n/2 + 1) + ... + log(n - 1) + log(n)(la mitad más grande de los términos de log(n!)). En realidad, acabo de leer la pregunta y vi que la pista se indica en la pregunta. Básicamente, (n/2)^(n/2) <= n! <= n^n=> log((n/2)^(n/2))<=log(n!)<=log(n^n)=>Θ(n/2 * log(n/2))<=log(n!)<=Θ(n*log(n))
Mehrdad Afshari

44
esta explicación es similar a la respuesta aceptada, pero tiene un poco más de detalles: mcs.sdsmt.edu/ecorwin/cs372/handouts/theta_n_factorial.htm
gayavat

40

Me doy cuenta de que esta es una pregunta muy antigua con una respuesta aceptada, pero ninguna de estas respuestas realmente utiliza el enfoque sugerido por la sugerencia.

Es un argumento bastante simple:

n!(= 1 * 2 * 3 * ... * n) es un producto de nnúmeros cada uno menor o igual a n. Por lo tanto, es menor que el producto de nnúmeros todos iguales a n; es decir, n^n.

La mitad de los números, es decir, n/2de ellos, en el n!producto son mayores o iguales que n/2. Por lo tanto, su producto es mayor que el producto de n/2números todos iguales a n/2; es decir (n/2)^(n/2).

Lleve registros para establecer el resultado.


99
En realidad, esto es lo mismo que la versión de registro en la respuesta aceptada, pero tomando el logaritmo después en lugar de antes. (se utiliza con mayor claridad la pista sin embargo)
hugomg

13

ingrese la descripción de la imagen aquí

Lo siento, no sé cómo usar la sintaxis de LaTeX en stackoverflow.


1
Esta es una gran explicación! Podría seguir esto hasta el paso 7, pero luego no puedo decodificar la matemática que ocurre entre el paso 7 y el paso 8 ... :-(
Z3d4s

3
@ Z3d4s El argumento en el paso 7 es básicamente que el primer término en el lado derecho es el término dominante y que log (n!) Puede aproximarse por n log (n) o que es de orden n log (n) que se expresa mediante la notación O grande O (n * log (n)).
aleatorio9

1
@ Z3d4s qué conversión de los pasos 7-8 dice que n logn == log (n ^ n) y para mostrar el límite aquí puede decir que el primer término siempre es mayor que el segundo término, puede verificar cualquier valor mayor, y para expresar la complejidad big-O siempre tomaremos el elemento dominante de todos. Entonces n logn contribuye al gran tiempo de O.
Shiv Prakash


7

Para el límite inferior,

lg(n!) = lg(n)+lg(n-1)+...+lg(n/2)+...+lg2+lg1
       >= lg(n/2)+lg(n/2)+...+lg(n/2)+ ((n-1)/2) lg 2 (leave last term lg1(=0); replace first n/2 terms as lg(n/2); replace last (n-1)/2 terms as lg2 which will make cancellation easier later)
       = n/2 lg(n/2) + (n/2) lg 2 - 1/2 lg 2
       = n/2 lg n - (n/2)(lg 2) + n/2 - 1/2
       = n/2 lg n - 1/2

lg (n!)> = (1/2) (n lg n - 1)

Combinando ambos límites:

1/2 (n lg n - 1) <= lg (n!) <= N lg n

Al elegir la constante de límite inferior mayor que (1/2) podemos compensar -1 dentro del paréntesis.

Así lg (n!) = Theta (n lg n)


2
Esta derivación extendida es necesaria porque, "algo"> = n / 2 * lg (n / 2) no es igual a omega (n lg n) que se mencionó en uno de los comentarios anteriores.
Vivek Anand Sampath

Esto debería leer "un constante MÁS PEQUEÑO que (1/2)" ya que estamos tratando de encontrar un límite inferior. Cualquier constante, c, menor que (1/2) eventualmente hará que c n logn <= (1/2) n * logn- (1/2) n, para un n lo suficientemente grande.
Mateo

3

Ayudándote más allá, donde te dejó Mick Sharpe:

Su derivación es bastante simple: ver http://en.wikipedia.org/wiki/Logarithm -> Group Theory

log (n!) = log (n * (n-1) * (n-2) * ... * 2 * 1) = log (n) + log (n-1) + ... + log (2 ) + log (1)

Piense en n como infinitamente grande . ¿Qué es infinito menos uno? o menos dos? etc.

log (inf) + log (inf) + log (inf) + ... = inf * log (inf)

Y luego piensa en inf como n.



1

Esto podría ayudar:

e ln (x) = x

y

(l m ) n = l m * n

3
En realidad, eso está mal: 1 ^ (m ^ n)! = 1 ^ (m n) debe ser (1 ^ m) ^ n = 1 ^ (m n)
Pindatjuh

Errr quiero decir L en lugar de 1 en el comentario anterior.
Pindatjuh

No escribió 1 ^ (m ^ n) escribió (l ^ m) ^ n
CodyBugstein

1
@CodyBugstein: Se realizó una edición para solucionar el problema, usted comentó años después cuando el error estaba oculto en la historia
Ben Voigt

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.