Big-O prova per una relazione di ricorrenza?


8

Questa domanda è abbastanza specifica nel modo in cui vengono prese le misure per risolvere il problema.

Dato dimostra che .T(n)=2T(2n/3)+O(n)T(n)=O(n2)

Quindi i passaggi erano i seguenti. Vogliamo dimostrare che .T(n)cn2

T(n)=2T(2n/3)+O(n)2c(2n/3)2+an(8/9)(cn2)+an
e poi il mio prof ha continuato a fare:

T(n)cn2+(an(1/9)cn2),
che viene fuori da:

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

La mia domanda è: come hanno potuto passare dall'8 / 9 all'1 / 9 introducendo un nuovo termine? È permesso? Non ha mai spiegato, questo era solo nelle sue soluzioni.


2
Non vedo l'introduzione di un nuovo termine? Abbiamo che semplifica in come nella riga precedente. Quindi le due linee sono effettivamente uguali. Forse ti stai chiedendo perché uno potrebbe voler fare questo? cn2+an(1/9)cn2(8/9)cn2+an
user340082710

Suppongo anche che l'ultima riga dovrebbe leggere anziché . cn2ck2
user340082710

@ZacharyFrenette Ah hai ragione. in quel caso, non ero sicuro di come avesse fatto la semplificazione. Perché si dovrebbe scegliere di separare i termini in quel modo? ci sono molti modi per dividere (8/9). Penso di sapere perché uno vorrebbe fare questo, per cancellare quel extra ? Altrimenti la disuguaglianza non regge. Anche grazie per aver sottolineato l'errore di battitura, risolverà. se vuoi commentare come risposta, posso accettarlo. an
D. Johnson,

Risposte:


12

Come hai sottolineato, la ragione per dividere il termine in due parti è quella di poter annullare termine. Se andiamo direttamente da , allora restiamo bloccati perché non possiamo fare nulla con il termine . Dividendolo nel modo descritto, questo permette a di essere più grande di quando , che quindi ti dà il risultato desiderato da per tali valori di .an(8/9)cn2+ancn2+anan(1/9)cn2anc9aan(1/9)cn20c

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.