2013-10-03 13 views
7

Mam algorytmu, i zorientowali się, że jego run-time złożoność następująco następujący wzór:Jak obliczyć sumę kwadratu serii dziennika

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

Podstawa dziennika jest 2.

Jak dowiedzieć się, co Θ/Omicron; złożoność algorytmiczna pochodzi z tej formuły?

+0

To może lepiej uwagę na na matematyce wymiana stosów. – slugonamission

+0

@usonamission: Czy math.SE zajmuje się algorytmami? –

+0

Czy te nawiasy kwadratowe mają wskazywać na jakąś operację najbliższej wartości całkowitej? – jxh

Odpowiedz

2

za górną granicę można rozumować similat do 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) 

Aby udowodnić na dolnej granicy, trzeba pokazać, że daną sumę wynosi> = stała wielokrotność n [log (n)]^2

Usuwanie pierwszą połowę względem od sumy

[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 

Wymiana każdy termin z log (n/2)^2

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

Dolna granica = (n/2) * [log(n) - 1]^2

Możemy udowodnić, że log(n) - 1 >= (1/2) * log(n)

Stąd dolna granica = (n/8) * [log(n)]^2 i Górna granica = n * [log(n)]^2

Więc Θ([log(1)]^2 + [log(2)]^2 + [log(3)]^2 + ....... + [log(n)]^2) = n * [log(n)]^2

+0

Przepraszamy za odpowiedź tak późno, masz rację, dzięki! – Alex