¿Prueba Big-O para una relación de recurrencia?


8

Esta pregunta es bastante específica en la forma de los pasos tomados para resolver el problema.

Dado prueba que .T(n)=2T(2n/3)+O(n)T(n)=O(n2)

Entonces los pasos fueron los siguientes. Queremos demostrar que .T(n)cn2

T(n)=2T(2n/3)+O(n)2c(2n/3)2+an(8/9)(cn2)+an
y luego mi profesor continuó:

T(n)cn2+(an(1/9)cn2),
que sale a:

T(n)cn2 for any c>=9a.

Mi pregunta es, ¿cómo pudieron cambiar de 8/9 a 1/9 al introducir un nuevo término? ¿Esto está permitido? Ella nunca explicó, esto solo estaba en sus soluciones.


2
No veo un nuevo término introducido? Tenemos que cn2+an(1/9)cn2 simplifica a (8/9)cn2+an como en la línea anterior. Entonces las dos líneas son en realidad iguales. Tal vez te estás preguntando por qué uno podría querer hacer esto.
user340082710

También estoy asumiendo que la línea final debería leer cn2 en lugar de ck2 .
user340082710

@ZacharyFrenette Ah, tienes razón. en ese caso, no estaba seguro de cómo hizo la simplificación. ¿Por qué elegiría separar los términos de esa manera? Hay muchas formas de dividir (8/9). Creo que sé por qué uno querría hacer esto, para anular ese extra de ? De lo contrario, la desigualdad no se mantendrá. También gracias por señalar el error tipográfico, se solucionará. Si desea comentar como respuesta, puedo aceptarlo. an
D. Johnson

Respuestas:


12

Como señaló, la razón para dividir el término en dos partes es poder cancelar término. Si pasamos directamente de , entonces nos quedamos atascados ya que no podemos hacer nada con término. Al dividirlo de la manera descrita, esto permite que sea ​​mayor que when , lo que le da el resultado deseado ya que para tales valores de .an(8/9)cn2+ancn2+anan(1/9)cn2anc9aan(1/9)cn20c

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.