rekurencja , logarytmy

0

Witam. mam taki problem:
Czas działania algorytmu A jest opisany przez rekurencje:
T(n)=7T(n/2)+n2
algorytm B:
T(n)=aT(n/4)+n2

Jaka jest największa liczba całkowita a, przy której B jest asymptotycznie szybszy niż A?

Nie wiem jak sie za to zabrać, jedyne co mi przychodzi do głowy, to zeby jakoś przyrownać do siebie te dwa wzory i spróbowac wyłuskać a, ale nie wiem jak ;/

A drugie zadanie do wykonania brzmi następująco:
Udowodnij, ze spełnione są następujące równości:
• lg(n!) = Θ(n lg n)
• dla każdych dwóch stałych a, b (b>0)
(n + a)b = Θ(nb)

Prosze o pomoc lub jakies nakierowanie na rozwiązanie.
W przyszłości mogę sie odwdzięczyć napisaniem jakiegoś algorytmu w c++ :)
Pozdrawiam
g_all

0

• dla każdych dwóch stałych a, b (b>0)
(n + a)b = Θ(nb)

a zostaje zdominowane przez n dla dużych n więc traci znaczenie.

• lg(n!) = Θ(n lg n)

lg(n!) = lg(n * n-1 * n-2 * n-3 * .... * 1) = lg(n) + lg(n-1) + ... + lg(1)
wyciągnijmy z tego jakiś stały procent największych składników, powiedzmy 50 %. wtedy najmniejszy z nich jest log(2) razy mniejszy od lg(n). wtedy możemy oszacować tą sumę jako: n * 50 % * lg(n) / lg(2), co po odrzuceniu stałych daje o(n lg n).

to z rekurencją jest opisane w cormenie.

0

probowałem coś znaleźć, ale teoria to dla mnie cieżki orzech;/
Jakbyś mógł mi pomóc jeszcze w tym byłbym naprawde wdzięczny :)
Dzięki i tak za te logarytmy, gdybyś kiedyś potrzebował pomocy przy pisaiu programu pisz na [email protected]

1 użytkowników online, w tym zalogowanych: 0, gości: 1