Wie löst man die folgende Wiederholung?

8

Ich kenne mich nicht mit Rekursionslēsungen außerhalb des Hauptsatzes, Rekursionsbäumen und der Substitutionsmethode aus. Ich vermute, dass das Lösen der folgenden Wiederholung für eine große O-Grenze keine dieser Methoden verwendet:

%Vor%     
velen 18.02.2016, 03:45
quelle

2 Antworten

3

Wir können die Substitution U(n) = T(n) + 1/2 machen und dann eine Wiederholung erhalten

%Vor%

Das ist ein bisschen magisch, aber, wie der Schablonentyp erwähnt, kann die Magie mit der Annihilator-Methode erzeugt werden. Jetzt müssen wir nur die lineare homogene Wiederholung lösen. Das charakteristische Polynom x^2 - x - 2 Faktoren als (x+1)(x-2) , also sind die Lösungen U(n) = a(-1)^n + b2^n wobei a und b irgendwelche Konstanten sind. Äquivalent, T(n) = a(-1)^n + b2^n - 1/2 , das ist Theta(2^n) außer in speziellen Fällen.

    
David Eisenstat 18.02.2016 04:28
quelle
1

Diese Rekursion wird nicht-homogene lineare Wiederholung genannt und wird durch Umwandlung in a gelöst homogenes:

%Vor%

Wenn Sie 1 von 2 subtrahieren und die Basis ändern, erhalten Sie T(n) = 2 T(n-1) + T(n-2) - 2 T(n-3) . Die entsprechende charakteristische Gleichung lautet:

%Vor%

mit Lösungen x = {-1, 1, 2} . Dies bedeutet, dass die Rekursion wie folgt aussieht:

%Vor%

Wo all diese Konstanten gefunden werden können, wissen wir T (0) und T (1). Für Ihre Komplexitätsanalyse ist klar, dass dies Exponential O(2^n) ist.

    
Salvador Dali 19.02.2016 03:33
quelle