Welche Bedeutung hat in CLRS (auf den Seiten 49-50) die folgende Aussage:
Σ n i = 1 O ( i )
Σni=1O(i) ist nur eine einzelne anonyme Funktion (von ), aber nicht dasselbe wie O (1) + O (2) + \ cdots + O (n) , das hat nicht wirklich eine Interpretation. "ii O ( 1 ) + O ( 2 ) + ⋯ + O ( n )O(1)+O(2)+⋯+O(n)
asymptotics
landau-notation
kesari
quelle
quelle
Antworten:
Da , ist es verlockend anzunehmen, dass ... Dies ist jedoch in der Tat nicht gültig. Der Grund ist, dass es für jeden Term in der Summe eine andere Konstante geben kann.1 + 2 + ⋯ + n = O ( n 2 )1+2+⋯+n=O(n2) O ( 1 ) + O ( 2 ) + ⋯ + O ( n ) = O ( n 2 )O(1)+O(2)+⋯+O(n)=O(n2)
Ein Beispiel
Lassen Sie mich ein Beispiel geben. Betrachten Sie die Summen , , , und so weiter. Beachten Sie, dass , , , usw. für jeden Term in der Summe. Daher wäre es vernünftig, in der Form zu schreiben . Können wir also schließen, dass ? Nee. Tatsächlich ist , also .S ( 1 ) = 1 2S(1)=12 S ( 2 ) = 1 2 + 2 2S(2)=12+22 S ( 3 ) = 1 2 + 2 2 + 3 2S(3)=12+22+32 S ( 4 ) = 1 2 + 2 2 + 3 2 + 4 2 S(4)=12+22+32+42 1 2 ∈ O. ( 1 ) 12∈O(1) 2 2 ∈ O ( 2 ) 22∈O(2) 32 ≤ O ( 3 ) 4 2 ≤ O ( 4 ) S ( j ) = 1 2 + ≤ + j 2 S ( j ) = O ( 1 ) + ≤ + O ( j ) S ( j ) = O ( j 2 ) S ( n ) = n ( n + 132∈O(3) 42∈O(4) S(j)=12+⋯+j2 S(j)=O(1)+⋯+O(j) S(j)=O(j2) ) ( 2 n + 1 ) / 6 S ( n ) = Θ ( n 3 )S(n)=n(n+1)(2n+1)/6 S(n)=Θ(n3)
Wenn das nicht hilft, versuchen wir die folgende genauere mathematische Entwicklung:
Eine Formalisierung
Es sei daran erinnert, dass die Interpretation von beispielsweise besteht, dass es sich um eine Menge nicht negativer Funktionen (nämlich um eine Menge von Funktionen so dass Konstanten so dass für alle ).O ( n 2 ) f ( n ) f ( n ) , c ≥ 0 , d ≥ 0 f ( n ) ≤ c ⋅ n 2 n ≥ dO(n2) f(n) f(n) c≥0,d≥0 f(n)≤c⋅n2 n≥d
Wir können einer Interpretation von nächsten kommen, wenn es sich um die Menge der Funktionen der Form so dass , , ..., .O(1)+O(2)+⋯+O(n)O(1)+O(2)+⋯+O(n) f1(n)+f2(n)+⋯+fn(n)f1(n)+f2(n)+⋯+fn(n) f1(n)∈O(1)f1(n)∈O(1) f2(n)∈O(2)f2(n)∈O(2) fn(n)∈O(n)fn(n)∈O(n)
Aber jetzt können die Konstanten für jedes unterschiedlich sein. Somit ist jedes eine nicht negative Funktion so dass es Konstanten mit für alle .fifi fifi fifi ci≥0,di≥0ci≥0,di≥0 fi(n)≤ci⋅ifi(n)≤ci⋅i n≥din≥di
Was können wir angesichts dessen über sagen ? Nicht sehr nützlich. Wir wissen, dass es eine Konstante so dass für alle . Was können wir nun zu dieser Summe sagen? Die Antwort ist, dass wir überhaupt nichts sagen können. Es könnte beliebig groß sein. Es ist verlockend, und zu sagen, dass ... aber das ist eigentlich nicht richtig, da wir einen einzigen konstanten Wert von brauchen , der für alle funktioniert , und den Wertg(n)=f1(n)+f2(n)+⋯+fn(n)g(n)=f1(n)+f2(n)+⋯+fn(n) d=max(d1,d2,…,dn)d=max(d1,d2,…,dn) g(n)≤c1⋅1+c2⋅2+⋯+cn⋅ng(n)≤c1⋅1+c2⋅2+⋯+cn⋅n n≥dn≥d c=max(c1,c2,…,cn)c=max(c1,c2,…,cn) g(n)≤c⋅(1+2+⋯+n)≤c⋅n2=O(n2)g(n)≤c⋅(1+2+⋯+n)≤c⋅n2=O(n2) cc nn max(c1,c2,…,cn)max(c1,c2,…,cn) ist eine Funktion von , keine Konstante.nn
Es gibt also möglicherweise keine Konstante so dass ; Es gibt möglicherweise keine Konstante so dass . Es gibt keine Garantie dafür, dass .cc g(n)≤c⋅(1+2+⋯+n)g(n)≤c⋅(1+2+⋯+n) cc g(n)≤c⋅n2g(n)≤c⋅n2 g(n)∈O(n2)g(n)∈O(n2)
Zum Lesen
Weitere Fragen zu diesem allgemeinen Problem finden Sie unter https://math.stackexchange.com/q/86076/14578 und in den überarbeiteten Begriffen von Sumums of Landau .
quelle
Der Grund , dass CLRS Kommentar ist verwirrend , dass ist, technisch gesehen , ist definiert als . Was wirklich passiert, ist, dass CLRS der Einfachheit halber die Notation missbraucht:∑ni=1O(i)∑ni=1O(i) O(1)+O(2)+…O(n)O(1)+O(2)+…O(n)
Stattdessen möchte CLRS, dass Sie als interpretieren, wobei die generische Funktion . Zum Beispiel würde sie , dass schreiben ist oder .∑ni=1O(i)∑ni=1O(i) ∑ni=1f(i)∑ni=1f(i) f(i)∈O(i)f(i)∈O(i) ∑ni=13i−5∑ni=13i−5 ∑ni=1O(i)∑ni=1O(i) O(n2)O(n2)
quelle