Ich schrieb
aber mein freund sagt das ist falsch. Aus dem TCS-Spickzettel weiß ich, dass die Summe auch heißt und logarithmisch in . Meine Schranke ist also nicht sehr scharf, reicht aber für die Analyse aus, für die ich sie brauchte.
Was habe ich falsch gemacht?
Bearbeiten : Mein Freund sagt, dass mit der gleichen Begründung können wir das beweisen
Das ist natürlich falsch! Was geht hier vor sich?
asymptotics
landau-notation
Raphael
quelle
quelle
Antworten:
Was Sie tun, ist ein sehr bequemer Missbrauch der Notation.
Einige Pedanten werden sagen, dass das, was Sie schreiben, Unsinn ist, da eine Menge bezeichnet und Sie keine arithmetischen Operationen mit ihnen ausführen können, wie Sie es tun.O (f)
Es ist jedoch eine gute Idee, diese Pedanten zu ignorieren und anzunehmen, dass für ein Mitglied der Gruppe steht. Wenn wir also f ( n ) = g ( n ) + O ( n ) sagen , was meinen wir dann wirklich, wenn f ( n ) - g ( n ) ∈ O ( n ) . (Hinweis: Einige Pedanten könnten bei dieser Aussage ebenfalls erschauern und behaupten, dass f ( n ) eine Zahl und f istO (f) f( n ) = g( n ) + O ( n ) f( n ) - g( n ) ≤ O ( n ) f( n ) f ist die Funktion!)
Dies macht es sehr bequem, Ausdrücke wie zu schreiben
Was dies bedeutet , ist , dass es einige ist , so dassf∈O(n1/3)
In deinem Fall von
Sie missbrauchen es noch weiter und müssen vorsichtig sein.
Hier gibt es zwei mögliche Interpretationen: Bezieht sich auf eine Funktion von n oder auf eine Funktion von k ?O ( 1 ) n k
Ich glaube, die richtige Interpretation besteht darin, sie als Funktion von zu interpretieren .k
Wenn Sie denken, es als eine Funktion der versuchen , dachte nicht falsch, könnte es zu potenziellen Täuschungen führen, wie das Denken k ist O ( 1 ) und zu versuchen , schreiben Σ n k = 1 k = Σ n k = 1 O ( 1 )n k O ( 1 ) ∑nk = 1k = ∑nk = 1O ( 1 )
Wenn Sie versuchen, es als eine Funktion von , dann ist es wahr, dass, wenn f = O ( g ) (wie das Argument zu ∞ geht ) und g niemals 0 ist , dassk f= O (g) ∞ G 0
Beachten Sie, dass wir in der Mitte den bequemen Missbrauch der Notation zu bedeuten, dass für einige Funktionen h ∈ O ( g ) die Summe ∑ n k = 1 h ( k ) ist . Beachten Sie, dass sich die letzte Funktion im O auf eine Funktion von n bezieht . Der Beweis ist nicht so schwierig, aber Sie müssen sich darum kümmern, dass es sich um eine asymptotische Obergrenze handelt (dh für ausreichend große Argumente), aber die Summe beginnt bei 1 .O(g(k)) h∈O(g) ∑nk=1h(k) O n 1
Wenn Sie versuchen, es als eine Funktion von , dann ist es auch wahr, dass wenn f = O ( g ) (wie das Argument zu ∞ geht ) dannn f=O(g) ∞
Ihr Beweis ist also in jeder Interpretation im Wesentlichen richtig.
quelle
Was Sie geschrieben haben, ist vollkommen richtig. Die te Harmonische liegt tatsächlich in der Menge O ( n ) .n O(n)
Beweis: . ◻∑ni=11i≤lnn+1≤2n=O(n) □
Die obere Schranke ist nicht eng , aber korrekt.O(n)
quelle
Für das zweite Beispiel können Sie nicht behaupten, dass
da mit n variiert . Nach wenigen Schritten ist i > n / 2 . Ein geeigneterer Weg ist zu sagen, dass i = O ( n ) ist, da in der Tat während der gesamten Summation i niemals 1 ⋅ n überschreitet . Durch diese Argumentation, n Σ i = 1 i = n Σ i = 1 O ( n ) = n O ( n ) = O (i n i>n/2 i=O(n) i 1⋅n
Es ist jedoch richtig, die Big-O-Notation nur am Ende zu verwenden. Grenzen Sie Ihre Summe so eng wie möglich ein, und verwenden Sie die asymptotischen Notationen erst dann, wenn Sie fertig sind, um diese Fallstricke zu vermeiden.
quelle