Hey
Ich weiß zwar nicht ob das hier reinpasst, aber hier ist es noch am besten.
Habe da ein paar Fragen zu einem Übungsblatt, das ich zwar schon größtenteils beantwortet habe aber trotzdem sind ein paar Fragen geblieben.
So wie ich das verstehe ist O die Obergrenze, groß Omega die Untergrenze und Big Theta der average case eines Algorithmus?
Was heißt dann zB wiki die Funktion f€ O(g)?
So wie ich das verstehe doch nur, dass es eine Funktion f gibt welche langsamer steigt als die Funktion g ?
f € Omega (g) wäre für mich, dass f kleienr ist als g,aber hier steht in der Beschreibung sowie als Graph: "f ist in der Größenordnung Omega von g" und der Graph zeigt, dass f ab einem gewissen Zeitpunkt größer ist als g. Also kann bei meinem Verständnis etwas nicht stimmen...
Und bei Big Theta sind überhaupt 2 Graphen für g aufgezeichnet wobei f dazwischen liegt.
Des weiteren: es steht überall ein c dabei (bei der formalen Definition, zb Wiki) wofür ist diese Konstante?
Ich hab zb.: bei f@ O(g) dass f(n) <c *g(n) aber keine Ahnung warum da ein c dazukommt.
Nochn Bsp.: dazu:
Ich muss zeigen, welche Funktion zu f € O/Theta/Omega(g) gehört.
f = 198n^2 -12n +55 g=n^2
Das ist jetzt fast die gleiche wie von Wikipedia. Man sieht eigentlich, dass für kleine n f wesentlich kleienr ist als g, aber für große n nur noch n^2 relevant ist und somit ist hier f€O(g) gültig?
Oder
f= n^2 * n^(5/2) g= n^2 * (log(n)^17.5)^(1/2), hier würde ich wieder das gleiche behaupten.
Jedoch würde mich interessieren, wie eine Funktion für f€Theta(g) aussehen würde.
Wie kann ich überprüfen was für eine KOmplexität schneller ist?
Ich nehme mal einfach drei Beispiele. - aus dem Kontext gerissen sind die nicht so aussagekräftig aber es geht mir auch eher ums zeigen..
O(n*log(n) * log(log(n)))
O(n * log(n)^(1+E)) 0<E<1
O(n * ln(n))
O(n * log(n))
Mir ist klar, dass ich das einfach aufzeichnen kann, aber soweit ich weiß gibt es da noch einen weg das zu beweisen was auch eher verlangt ist, als einfach nur was hinzumalen.
Also, ich sage mal, dass O(n * log(n)) schneller steigt als O(n * ln(n)).
Mit der begründung, dass 2^x = 128 ein höheres x benötigt als e^x=128, also müsste bei der "Formel" immer ein höherer Wert rauskommen und schneller steigen.
Ich gehe mal davon aus, dass O(n*log(n) * log(log(n))), langsamer steigt als O(n * log(n)^(1+E)) , aber kann nicht zeigen weshalb genau.
Ich weiß zwar nicht ob das hier reinpasst, aber hier ist es noch am besten.
Habe da ein paar Fragen zu einem Übungsblatt, das ich zwar schon größtenteils beantwortet habe aber trotzdem sind ein paar Fragen geblieben.
So wie ich das verstehe ist O die Obergrenze, groß Omega die Untergrenze und Big Theta der average case eines Algorithmus?
Was heißt dann zB wiki die Funktion f€ O(g)?
So wie ich das verstehe doch nur, dass es eine Funktion f gibt welche langsamer steigt als die Funktion g ?
f € Omega (g) wäre für mich, dass f kleienr ist als g,aber hier steht in der Beschreibung sowie als Graph: "f ist in der Größenordnung Omega von g" und der Graph zeigt, dass f ab einem gewissen Zeitpunkt größer ist als g. Also kann bei meinem Verständnis etwas nicht stimmen...
Und bei Big Theta sind überhaupt 2 Graphen für g aufgezeichnet wobei f dazwischen liegt.
Des weiteren: es steht überall ein c dabei (bei der formalen Definition, zb Wiki) wofür ist diese Konstante?
Ich hab zb.: bei f@ O(g) dass f(n) <c *g(n) aber keine Ahnung warum da ein c dazukommt.
Nochn Bsp.: dazu:
Ich muss zeigen, welche Funktion zu f € O/Theta/Omega(g) gehört.
f = 198n^2 -12n +55 g=n^2
Das ist jetzt fast die gleiche wie von Wikipedia. Man sieht eigentlich, dass für kleine n f wesentlich kleienr ist als g, aber für große n nur noch n^2 relevant ist und somit ist hier f€O(g) gültig?
Oder
f= n^2 * n^(5/2) g= n^2 * (log(n)^17.5)^(1/2), hier würde ich wieder das gleiche behaupten.
Jedoch würde mich interessieren, wie eine Funktion für f€Theta(g) aussehen würde.
Wie kann ich überprüfen was für eine KOmplexität schneller ist?
Ich nehme mal einfach drei Beispiele. - aus dem Kontext gerissen sind die nicht so aussagekräftig aber es geht mir auch eher ums zeigen..
O(n*log(n) * log(log(n)))
O(n * log(n)^(1+E)) 0<E<1
O(n * ln(n))
O(n * log(n))
Mir ist klar, dass ich das einfach aufzeichnen kann, aber soweit ich weiß gibt es da noch einen weg das zu beweisen was auch eher verlangt ist, als einfach nur was hinzumalen.
Also, ich sage mal, dass O(n * log(n)) schneller steigt als O(n * ln(n)).
Mit der begründung, dass 2^x = 128 ein höheres x benötigt als e^x=128, also müsste bei der "Formel" immer ein höherer Wert rauskommen und schneller steigen.
Ich gehe mal davon aus, dass O(n*log(n) * log(log(n))), langsamer steigt als O(n * log(n)^(1+E)) , aber kann nicht zeigen weshalb genau.