Lösen der Wiederholung T (n) = 3T (n-2) mit iterativer Methode


7

Es ist schon eine Weile her, dass ich eine Wiederholung lösen musste und ich wollte sicherstellen, dass ich die iterative Methode zur Lösung dieser Probleme verstehe. Gegeben:

T(n)=3T(n−2)

Mein erster Schritt bestand darin, Begriffe iterativ zu ersetzen, um zu einer allgemeinen Form zu gelangen:

T(n−2)=3T(n−2−2)=3T(n−4)
T(n)=3∗3T(n−4)

was zur allgemeinen Form führt:

T(n)=3kT(n−2k)

Jetzt löse ich n−2k=1 zum kDies ist der Punkt, an dem die Wiederholung aufhört (wo T(1)) und geben Sie diesen Wert ein (n/2−1/2=k) in die allgemeine Form:

T(n)=3n/2−1/2
T(n)=O(3n)

Bei diesem letzten Schritt bin ich mir nicht sicher:

Ich würde das einfach als "argumentieren" n→∞ man kann ignorieren −1/2 und n/2→n? Ist diese Annahme richtig?

Antworten:


7

Beachten Sie, dass 3n/2−1/2=133n/2=133n. Also die−12 in der Tat wird ein konstanter Faktor, der von der absorbiert wird O(), aber n2 im Exponenten ändert sich die Basis und durch Ändern der Basis ändert sich die O-Klasse.

Die richtige Antwort lautet also T(n)=O(3n/2)=O(3n).


Vielen Dank an @FrankW und @Jared! Ich habe diese Antwort als richtig markiert, da sie eine Erklärung enthält (das Ändern der Basis ändert die O-Klasse).
— wpp

6

Bis zum letzten Schritt war alles korrekt ... Sie fanden:

T(n)∝3n2−12=(3n−1)12=13(3)n
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.