|
|
|
|
Hmjo, komme ich wohl nicht drumrum. Hatte gehofft, dass es da irgendwas cell2mat-mäßiges gibt, aber das ist durch diesen doppelt gemoppelten mist ( {{y(i)}} statt {y(i)} ) nicht drin und würde mir auch ohnehin wieder alles in einen einzelnen langen Vektor hauen.
Lasse ich nachher mal über den vollen Datensatz laufen, für's Beispiel funktioniert
|
Code: |
for i = 1:length(y)
x_for_plot = zeros(length(y{i}{1}),1) + x(i);
scatter(x_for_plot, y{i}{1}, 'k.')
end |
|
Danke.
(y{i}{1} hat was schrecklich Mathematica-esques )
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von nobody am 18.03.2013 12:42]
|
|
|
|
|
|
Wer kommt denn auf die Idee, die Daten so abzuspeichern?
Die Daten einfach in einem guten Format abzuspeichern, da du ja sicher noch öfter darauf zugreifen musst, ist keine Option?
|
|
|
|
|
|
|
Ich war's nicht. Und ja, ich bau das wohl etwas um, füll den Rest mit NaNs und speicher das dann als Matrix. Dann kann man's wenigstens auch außerhalb des Loops in einer Zeile plotten. Viel mehr wird damit auch nicht passieren, ist nur ein Nebenprodukt.
Und naja... sowas passiert halt, wenn keiner jemals wirklich programmieren gelernt hat und jeder macht, wie er es irgendwie hinkriegt. :-/ Nicht schön, aber wenn ich so in andere Abteilungen gucke, bin ich ganz froh, dass ich das Zeug nicht als bunte Tabelle in einer .doc vorliegen habe.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von nobody am 18.03.2013 12:54]
|
|
|
|
|
|
|
|
|
|
Kann mir wer in einfachen Worten Big O, Omega und Theta Notationen erklären?
Ich meine es grob schon verstanden zu haben ( Big O is worst case Zeit, Omega best case und Theta dazwischen ) aber so ganz eben noch nicht..
Bsp :
Dachte an F(n) = O(n) ; ; F(n) = Theta(n)
mfg
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von b4ckspin am 18.03.2013 19:26]
|
|
|
|
|
|
Damit beschreibst du die Komplexitätsklassen von Funktionen, und damit ihr Wachstumsverhalten. Was da wächst ist allgemein erstmal nicht gesagt, das kann Zeit/Speicher/Geld oder sonstwas sein, die y-Achse des Graphen halt.
Beispiel Zeit: Eine Funktion, die in O(n) liegt, wird mit linear ansteigender Anzahl der Input-Elemente immer (maximal) linear mehr Zeit brauchen. Liegt die Funktion in O(n²) wird es bei linear steigender Input-Menge (maximal) quadratisch mehr Zeit brauchen und so weiter.
Achte auf die kursiven (maximal). Das ist wegen O(). Bei Omega() würde statt (maximal) (mindestens) dort stehen. Und bei Theta() wärs sozusagen (genau), weil das die Schnittmenge zwischen O() und Omega() ist.
Damit kannst du jetzt auch Funktionen vergleichen. Wenn g(n) in f(n) beide in O(n) liegen, bedeutet das, dass es keinen Punkt gibt, ab dem die eine Funktion plötzlich signifikant schneller wachsen wird als die andere. Beispiel, Bubblesort ist O(n²), Quicksort ist O(n*log n). Das bedeutet, das (unabhängig davon wie es bei kleinem Input aussieht) es einen Punkt (also eine Anzahl von Input-Elementen) gibt, ab dem Quicksort immer schneller sein wird als Bubblesort, weil O(n*log n) viel, viel langsamer wächst als O(n²).
|
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von Rufus am 18.03.2013 19:51]
|
|
|
|
|
|
klingt schonmal verständlich sind meine Überlegungen zu obigem Beispiel richtig?
|
|
|
|
|
|
|
Ich weiß nich, was du da tust, aber deine Funktion oben ist O(n).
Konstante Faktoren raus, dann bleibt O(n+log(n)) = O(max(n, log(n))) = O(n)
|
|
|
|
|
|
|
ok und gibts da jetzt auch ein Omega und Theta und wie schließe ich darauf wenn ja
|
|
|
|
|
|
|
Na endlich mal was positives dazu - die Firma dankt
|
|
|
|
|
|
|
| Zitat von b4ckspin
ok und gibts da jetzt auch ein Omega und Theta und wie schließe ich darauf wenn ja
| |
Omega und Theta kommen ins Spiel wenn du verschiedene Funktionen vergleichst. Das tust du hier ja eigentlich nicht, allenfalls vergleichst du deine Funktion mit f(n) = n. Und in diesem Fall gilt dann O(n) = Omega(n) = Theta(n).
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rufus am 18.03.2013 20:03]
|
|
|
|
|
|
| Zitat von b4ckspin
klingt schonmal verständlich sind meine Überlegungen zu obigem Beispiel richtig?
| |
Nein. Die O-Notation hat erstmal nichts mit Best-Case/Worst-Case zu tun.
Deine Funktion ist . Dabei sind die 25, 27^3 ja sogar die Basis des Logarithmus Konstanten der Implementierung. Die will man bei der theoretischen Untersuchung ignorieren. Also schreibt man . Deine Funktion ist ein Element einer Menge. Die Schreibweise mit dem = ist da eher verwirrend.
Im Best-Case ist deine Eingabesequenz schon sortiert und dein Algorithmus muss nichts tun. Dabei muss er aber feststellen, dass die Sequenz schon sortiert ist, also hat jeder Sortieralgorithmus eine Komplexität von .
Quick-Sort hat eine Worst-Case Laufzeit von . Warum Theta? Weil ich weiß, dass Quick-Sort genau n^2 Schritte braucht. Ich habe somit für den Worst-Case sogar eine untere Grenze.
Man kann zeigen, dass kein Algorithmus jede Sequenz schneller als in sortieren kann. Merge-Sort sortiert jede Sequenz in Zeit . Also ist die Grenze für eine Compare-DRAM scharf.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Kambfhase am 18.03.2013 20:15]
|
|
|
|
|
|
Alter. Ich bin noch am Zählen der Gedankensprünge in diesem Post.
|
|
|
|
|
|
|
Zu den einfachen Worten ein wenig Mathe, weil es die Sache finde ich einfacher, nicht schwerer macht:
, und sind erstmal nur Mengen von Funktionen (Abhängig von einer Funktion g).
Dabei beinhaltet all diejenigen Funktionen, die asymptotisch maximal so schnell wachsen wie g. enthält alle die mindestens so schnell wachsen wie g. Und dann gilt , sind also alle Funktionen die gleich schnell wachsen wie g.
---
Der Vollständigkeit halber (und einigermaßen ausm Kopf, also sind da bestimmt Fehler drin):
Im Folgenden will ich mal nurnoch auf eingehen, sonst tippe ich mich kaputt.
Schauen wir uns mal die zwei äquivalenten Definitionen von an (Der Einfahheit wegen gehe ich von nichtnegativen Funktionen aus):
f ist in wenn es eine Konstante gibt die man auf g multipliziert sodass es einen "Anfangswert" gibt ab dem immer maximal so groß ist wie . Für sehr große Werte kann man also mit Sicherheit sagen, dass von im Wachstumsverhalten dominiert wird.
Das könnte dich an die Definition von Grenzwerten erinnern ("es gibt einen Anfangswert ab dem die Differenz zwischen Funktion und Grenzwert..."). Und diese Parallele existiert tatsächlich und ist die wie ich finde viel intuitivere Beschreibung der Landausymbole, die mit Grenzwerten:
Wäre der Grenzwert unendlich würde schneller wachsen als .
---
Landausymbole beschreiben Mengen von Funktionen, ohne jegliche Konntation von "Worst Case" oder so. Für Laufzeitanalysen sind diese Landausymbole aber sehr sehr nützlich, weil sich einiges herausstellt:
- Es interessiert eigentlich immer nur der Part einer Funktion, die die Laufzeit beschreibt, der am schnellsten wächst.
- Der Vorfaktor vor diesem Part ist meistens egal, da er von der Maschine abhängig ist.
- Informatiker sind faul.
Wenn man jetzt sagt Mergesort ist in O(n * log n) dann meint man damit, dass es eine Implementierung von Mergesort gibt, deren Laufzeit in Abhängigkeit der Anzahl der Elemente die sortiert werden sollen von einer Funktion beschrieben wird, die in liegt, also maximal so schnell wächst wie n * log n mit beliebigem Vorfaktor.
Du kannst also wenn die (worst case)-Laufzeit eines Algorithmus mithilfe der O-Notation angegeben wird abschätzen, wie sehr die Laufzeit für große Eingaben "explodiert", das ist der ganze Sinn.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von B0rG* am 18.03.2013 20:18]
|
|
|
|
|
|
| Zitat von B0rG*
Das könnte dich an die Definition von Grenzwerten erinnern ("es gibt einen Anfangswert ab dem die Differenz zwischen Funktion und Grenzwert..."). Und diese Parallele existiert tatsächlich und ist die wie ich finde viel intuitivere Beschreibung der Landausymbole, die mit Grenzwerten:
Wäre der Grenzwert unendlich würde schneller wachsen als .
| |
Wow, dass jemand diese Definition als intuitiv bezeichnet, lässt mich hoffen, dass die Welt doch noch nicht verloren ist.
---
Klugscheißerei: Quick-Sort ist immer noch O(n^2) und nicht O(n log n) solange ihr ihn nicht parallel, randomisiert oder mit geschickter Pivot-Suche betrachtet.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Kambfhase am 18.03.2013 20:22]
|
|
|
|
|
|
| Zitat von Kambfhase
Klugscheißerei: Quick-Sort ist immer noch O(n^2) und nicht O(n log n) solange ihr ihn nicht parallel, randomisiert oder mit geschickter Pivot-Suche betrachtet.
| |
Mist, du hast es gesehen .
|
|
|
|
|
|
|
Falls b4ckspins Kopf noch nicht explodiert ist: An O-Klassen gewöhnt man sich. Da muss man einfach mal ein Semester mit jonglieren, dann geht das.
|
|
|
|
|
|
|
Vortrag bei der DPG-Frühjahrstagung ist gehalten.
Partay! :-)
Morgen gibt neun interessant klingenden Vortrag über Quantengravitation.
|
|
|
|
|
|
|
Bevor ich mich dumm und dämlich suche:
Bekanntlich sind LALR(1) Parser weniger mächtig als LR(1) Parser, haben aber kleinere Syntaxtabellen. Hat da jemand eine Zahl, um wie viel die kleiner sind, oder wie groß Tabellen in dem ein oder anderen Fall werden?
|
|
|
|
|
|
|
| Zitat von Xerxes-3.0
Vortrag bei der DPG-Frühjahrstagung ist gehalten.
Partay! :-)
Morgen gibt neun interessant klingenden Vortrag über Quantengravitation.
| |
Wer denn? Du bist doch bei den Teilchen-Leuten, oder?
Spoken like a true virgin! - Damn straight!
|
|
|
|
|
|
|
Zur O-Notation kann ich empfehlen ein paar Folien einer Vorlesung bei uns durchzulesen, find ich sehr gelungen und fasst das Wesentliche kompakt zusammen.
|
|
|
|
|
|
|
Danke für die vielen Rückmeldungen Damit komm ich schonmal ein gutes Stück weiter vom Verständnis!
|
|
|
|
|
|
|
| Zitat von Kambfhase
| Zitat von B0rG*
Das könnte dich an die Definition von Grenzwerten erinnern ("es gibt einen Anfangswert ab dem die Differenz zwischen Funktion und Grenzwert..."). Und diese Parallele existiert tatsächlich und ist die wie ich finde viel intuitivere Beschreibung der Landausymbole, die mit Grenzwerten:
Wäre der Grenzwert unendlich würde schneller wachsen als .
| |
Wow, dass jemand diese Definition als intuitiv bezeichnet, lässt mich hoffen, dass die Welt doch noch nicht verloren ist.
| |
Ich dachte beim vorbeiscrollen: Hey, das ist eine echt gute Erklärung
|
|
|
|
|
|
|z-5|=2
|
Kann jemand etwas mit Gebieten im Zusammenhang mit dem Causchyschen Integralsatz anfangen?
Es geht ja darum, ob die Funktion holomorph auf dem ganzen Gebiet ist. Dafür muss ich aber wissen wie das Gebiet ungefähr aussieht.
bei |z-5|=2 gehe ich davon aus, dass es sich um einen Kreis mit dem Mittelpunkt (5|0) mit dem Radius sqrt(2) handelt.
Damit lag ich bis jetzt auch immer richtig, aber
wie ist es bei
|2z-3i|=2 ?
Danke euch
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von chuck.sports am 19.03.2013 13:51]
|
|
|
|
|
|
|
|
|
|
Danke Irgendwie ist da keiner drauf gekommen.
Fünf angehende Ingenieure Wir hatten immer nur komplizierteres im Kopf!
|
|
|
|
|
|
|
folgende Aufgabe :
Ein File mit dem File Descriptor fd hat folgenden Inhalt (jede Zahl belegt ein Byte): 3, 1, 2, 4, 5, 1, 6, 2, 7.
Was steht in der Variable buffer nach folgender C–Sequenz:
lseek(fd, 3, SEEK_SET);
read(fd, &buffer, 4);
Ich hab nur gar keinen Ansatz wonach ich suchen sollte um mir mehr Infos zu holen wie ich das löse.. :/
jemand eine Idee?
edit: Ok irgendwas Unix Programming
zeigt dann lseek(fd, 3, SEEK_SET); auf das 3. Byte aus den obigen Zahlen ?
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von b4ckspin am 19.03.2013 18:11]
|
|
|
|
|
|
Dass das C-Funktionen sind, steht doch schon in deiner Aufgabe. Bedien doch einfach mal google.
|
|
|
|
|
|
|
Move to byte #3
lseek( fd, 3, SEEK_SET ); ( also 2 ? )
read(fd, &buffer,4); ( es wird was ausgelesen und in buffer geschrieben. Die 4 ist die Anzahl der Bytes die aus der vorigen Sequenz gelesen werden - heisst das es wird 2,4,5,1 ausgelesen und in buffer geschrieben?
|
|
|
|
|
|
|
| Zitat von Achsel-des-Bösen
| Zitat von Kambfhase
| Zitat von B0rG*
Das könnte dich an die Definition von Grenzwerten erinnern ("es gibt einen Anfangswert ab dem die Differenz zwischen Funktion und Grenzwert..."). Und diese Parallele existiert tatsächlich und ist die wie ich finde viel intuitivere Beschreibung der Landausymbole, die mit Grenzwerten:
Wäre der Grenzwert unendlich würde schneller wachsen als .
| |
Wow, dass jemand diese Definition als intuitiv bezeichnet, lässt mich hoffen, dass die Welt doch noch nicht verloren ist.
| |
Ich dachte beim vorbeiscrollen: Hey, das ist eine echt gute Erklärung
| |
Leider ist es falsch, der Limes existiert im Allgemeinen nicht. Mit Linux limsup wäre das nicht passiert.
|
|
|
|
|
|
Thema: pOT-lnformatiker, Mathematiker, Physiker XII ( Jetzt mit Primzahlen > 1024 ) |