2013-10-03 10 views
7

Ho un algoritmo, e ho capito che la sua complessità runtime segue la seguente formula:Come calcolare somma dei quadrati delle serie di log

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 

La base del registro è 2.

Come faccio a capire cosa sia il Θ/& Omicron; la complessità algoritmica deriva da questa formula?

+0

Questo potrebbe ottenere una migliore attenzione nel corso sulla matematica scambio di pile. – slugonamission

+0

@slugonamission: math.SE si occupa degli algoritmi? –

+0

Queste parentesi quadre dovrebbero indicare un'operazione del valore intero più vicino? Ricorsione – jxh

risposta

2

per la parte superiore più vincolati si può ragionare similat a log (n!) = O (nlog (n))

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 < [log(n)]^2 + ... + [log(n)]^2 
                  = n[log(n)]^2 

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 = O(n[log(n)]^2) 

lievitare per limite inferiore, hanno bisogno di dimostrare che data somma è> = costante di n [log (n)]^2

Cancellazione prima metà dei termini dalla somma

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 >= [log(n/2)]^2 + [log(n/2 + 1)]^2 + [log(3)]^2 + ....... + [log(n)]^2 

Sostituzione ogni termine con log (n/2)^2

[log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2 >= (n/2) * [log(n/2)]^2 

Limite inferiore = (n/2) * [log(n) - 1]^2

Possiamo dimostrare che log(n) - 1 >= (1/2) * log(n)

Quindi limite inferiore = (n/8) * [log(n)]^2 e limite superiore = n * [log(n)]^2

Così Θ([log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2) = n * [log(n)]^2

+0

Ci scusiamo per la risposta così tardi, hai ragione, grazie! – Alex