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:
für alle i < n .
Und um den Beweis zu vervollständigen, müssen Sie auch zeigen, dass .
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.
Beachten Sie, dass Sie zwischen dem Ergebnis und dem Proof-Prozess verwechselt werden. Und noch ein Punkt, ist tatsächlich Θ ( nin diesem Fall log n ) , so dass Sie eine geeignete Induktionshypothese in Betracht ziehen können, um dies beweisen zu können.
Sie haben einige Schritte ausgelassen. Es sieht so aus, als würden Sie versuchen, durch Induktion zu beweisen, dass , und Ihr Beweis lautet:
Angenommen, für k < n . Dies bedeutet T ( k ) ≤ c für einige c . Dann ist T ( n ) = 2 T ( ≤ n / 2 ≤ ) + n ≤ 2 c ≤ n / 2 ≤ + n ≤ ( c , also 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 ( k . 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..
Sie müssen explizit angeben, was bedeutet. Vielleicht lautet Ihr Beweis:
Angenommen,
Ich erweitere die bereits gegebene Antwort, vielleicht nur, indem ich meinen Kommentar ausführlicher erkläre.