Ich versuche zu verstehen, was mit dem folgenden Beweis der folgenden Wiederholung falsch ist
T(n)≤2(c⌊n
Die Dokumentation sagt, dass es wegen der induktiven Hypothese falsch ist, dass Was fehlt mir?
Ich versuche zu verstehen, was mit dem folgenden Beweis der folgenden Wiederholung falsch ist
T(n)≤2(c⌊n
Die Dokumentation sagt, dass es wegen der induktiven Hypothese falsch ist, dass Was fehlt mir?
Antworten:
Nehmen wir an, das Endziel ist es, T ( n) zu beweisen. Sie beginnen mit der Induktionshypothese:T.( n ) = O ( n )
für alle i < n .T.( i ) ≤ c i i < n
Und um den Beweis zu vervollständigen, müssen Sie auch zeigen, dass .T.( n ) ≤ c n
Was Sie jedoch ableiten können, ist , was für die Vervollständigung des Beweises nicht hilfreich ist. Sie benötigen eine Konstante c für (fast) alle n . Daher können wir nichts schließen und T ( n ) = O ( n ) ist nicht bewiesen.T.( n ) ≤ ( c + 1 ) n c n T.( n ) = O ( n )
Beachten Sie, dass Sie zwischen dem Ergebnis und dem Proof-Prozess verwechselt werden. Und noch ein Punkt, ist tatsächlich Θ ( nT.( n ) in diesem Fall log n ) , so dass Sie eine geeignete Induktionshypothese in Betracht ziehen können, um dies beweisen zu können.Θ ( n logn )
quelle
Sie haben einige Schritte ausgelassen. Es sieht so aus, als würden Sie versuchen, durch Induktion zu beweisen, dass , und Ihr Beweis lautet:T(n)=O(n)
Dieser Beweis geht von Anfang an schief: „ für k < n “ macht keinen Sinn. Big oh ist eine asymptotische Vorstellung: T ( k ) = O ( k ) bedeutet, dass es eine Konstante c und eine Schwelle N gibt, so dass ∀ k ≥ N , T ( kT(k)=O(k) k<n T(k)=O(k) c . Und am Ende können Sie nicht schließen, dass „ T ( n ) = O ( n ) “, weil dies etwas über die Funktion T als Ganzesaussagtund Sie nur etwas über den bestimmten Wert T ( n ) bewiesen haben..∀k≥N,T(k)≤ck T(n)=O(n) T T(n)
Sie müssen explizit angeben, was bedeutet. Vielleicht lautet Ihr Beweis:O
quelle
Ich erweitere die bereits gegebene Antwort, vielleicht nur, indem ich meinen Kommentar ausführlicher erkläre.
quelle