Por lo general, al resolver algo como esto, solo desea la solución big-O y no una respuesta exacta. Podemos comenzar expandiendo la recurrencia para ver qué sucede. Podemos expandir [matemáticas] 3T (n / 4) + n \ cdot \ ln ^ 3n [/ matemáticas] a [matemáticas] n \ cdot \ ln ^ 3n + \ frac {3} {4} n \ cdot \ ln ^ 3 (n / 4) + 9T (n / 16) [/ matemáticas]. Como [math] \ ln ^ 3 (n / 4) = \ ln ^ 2 (\ ln n – \ ln 4) [/ math] es aproximadamente [math] \ ln ^ 3n [/ math], solo trataremos [matemáticas] \ ln ^ 3 (n / 4) [/ matemáticas] como [matemáticas] \ ln ^ 3n [/ matemáticas]. Como se trata de una sobreestimación, también es seguro hacerlo para el análisis big-O.
Usando esta aproximación, obtenemos [math] n \ cdot \ ln ^ 3n + \ frac {3} {4} n \ cdot \ ln ^ 3 (n) + 9T (n / 16) [/ math]. El patrón se hace evidente en este punto, es [matemáticas] \ sum_i (3/4) ^ en \ cdot \ ln ^ 3n = n \ cdot \ ln ^ 3n \ cdot \ sum_i (3/4) ^ i [/ matemáticas ] La suma infinita de [matemáticas] x ^ i [/ matemáticas] es igual a [matemáticas] \ frac {1} {1-x} [/ matemáticas] para [matemáticas] x [/ matemáticas] con un valor absoluto menor que 1, así que esto termina como [matemáticas] 4n \ cdot \ ln ^ 3n [/ matemáticas]. Al hacer una verificación rápida de la cordura ejecutando la recurrencia de los primeros 10 millones de valores, podemos ver que esta aproximación hace un trabajo bastante bueno, sobreestimando en un factor menor que 1.2 para el valor de 10 millones.
Usando la notación big-O, eliminamos los factores constantes y llegamos a una respuesta de [matemáticas] T (n) \ en O (n \ ln ^ 3n) [/ matemáticas]. Como [math] T (n) \ ge n \ ln ^ 3n [/ math], también tenemos [math] T (n) \ in \ Omega (n \ ln ^ 3n) [/ math], entonces [math] T (n) \ in \ Theta (n \ ln ^ 3n) [/ math].
- ¿Cuál es la mejor descripción del cálculo lambda?
- En términos simples, ¿qué es SOCP (programación de cono de segundo orden / programación semi-definida) y en qué se diferencia la optimización convexa de otros tipos de optimizaciones?
- ¿Cómo podría implementar un programa que calcule [math] e ^ x [/ math] sumando los primeros 100 términos de su expansión en serie?
- ¿Cuáles son los conocimientos matemáticos que debo saber para hacer la programación de mainframe?
- ¿Cuál es una forma simple o intuitiva de entender por qué todos los números aleatorios son normales (Teorema de Borel)?