|
|
|
Completely Automated Public User Test To tell PIMP
|
Das hier ist *nicht* der Informatiker helfen PC-Neulingen Thread!
Hier tummelt sich alles, was mit Informatik, Mathematik oder Physik zu tun hat. Bei Fragen, Diskussion und gegenseitigem Schulterklopfen bis Trösten, das über den Erklärbär hinaus geht, wird hier geholfen. Oder verwirrt. Oder beides.
Wenn Hilfe gegeben wurde, die über bloßes Nachrechnen hinaus geht, freut man sich hier auch gerne, wenn das irgendwo genauer gelöst wurde (Übungen, Vorlesungen, Bücher, ...) und der Beholfene davon erfährt.
Die Wahrscheinlichkeit, nichts zu verstehen, steigt mit jedem Post logarithmisch. Der Aufwand, das zu ändern, ist o(Life). Weiterlesen geschieht auf eigene Gefahr und riskiert die persönlichen sprachlichen und sozialen Fähigkeiten. Zu den Nebenwirkungen gehören Versuche, um 5:00 morgens vorm Schlafengehen noch P=NP zu zeigen, die Goldbach-Vermutung zu beweisen oder das Axino zu finden.
Grundlegende Hilfen zur Diskussion:
n-1 - Der Alte.
n+1 - Der Nächste.
- Wer TeX im Forum braucht, kann das jetzt auch über [tex][/tex]
Spoiler - markieren, um zu lesen:
Online-TeX - Alte Lösung: Wenn man mal eben eine Formel im Forum nicht in ASCII-Art darstellen will.
Detexify - Um das Gekritzel aus der Vorlesung mit obigem Link nutzbar zu machen. (Zeichnung->TeX-Symbol)
LaTeX - Für alles, was über das Forum hinausgeht (und man sich in was anderes als Office einarbeiten will/muss)
XKCD - Unsere Bibel
PHD Comics
Abstruse Goose - Weiterer Zeitvertreib
Geek and Poke - Webcomic für Codetipper
Wikipedia - Eine gute erste Anlaufstelle. Für fast alles.
arXiv - Eine zweite Anlaufstelle mit doofer Suche
Wolfram Alpha - Der praktische Rechnerersatz
Unspeakable Vault of Doom - In Ermangelung eines passenderen Bildes für den Thread wird erstmal das für Foren gedachte Bild vom UVOD verwendet.)
-----------------
verwandte Threads:
Studienthread
(Hobby-)Astronomie
-----------------
IRC-Channel:
#potpimp auf freenode.net Könnte man mal wieder beleben...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Oli am 08.04.2013 16:36]
|
|
|
|
|
|
Ist jemand Mitglied bei orcid.org? Was genau ist das? Sollte ich es haben? Sollte ich meine Artikel da hochladen? Hat das eine Zukunft?
Die APS Journals unterstützen das schon irgendwie.
|
|
|
|
|
|
|
Ich wiederhole den letzten Post mal hier nochmal.
----
| Zitat von b4ckspin
Ich hab folgendes Problem :
Zu dem Algo soll ich nun die Laufzeit bestimmen nur hab ich keine Ahnung wie das geht..
Vielleicht hat wer paar Tipps dazu.
| |
Mit E(n) meine ich Theta(n).
|
Code: |
1 | MergeSort(A, p, r): | n = r - p, T(n) = 2 * T(n/2) + E(1) + T'(n) = 2 * T(n/2) + E(n)
2 | if p < r then | E(1)
3 | q <- (p+r)/2 | E(1)
4 | MergeSort(A, p, q) | T(n/2)
5 | MergeSort(A, q + 1, r) | T(n/2)
6 | Merge(A, p, q, r) | T'(n)
7 |
8 |
9 |
10 |
11 | Merge(A, p, q, r): | n = r - p, T'(n) = "6 * E(1)" + "4 * E(n)" = E(n)
12 | n1 <- q - p + 1 | E(1)
13 | n2 <- r - q | E(1)
14 |
15 | define L, R | E(n)
16 |
17 | for i <- 1 to n1 do | E(n)
18 | L[i] <- A[p + i - 1] | -- E(1)
19 |
20 | for j <- 1 to n2 do | E(n)
21 | R[j] <- A[q + j] | -- E(1)
22 |
23 | L[n1 + 1] <- infty | E(1)
24 | R[n2 + 1] <- infty | E(1)
25 | i <- 1 | E(1)
26 | j <- 1 | E(1)
27 |
28 | for k <- p to r do | E(n)
29 | if L[i] <= R[j] then | -- E(1)
30 | A[k] <- L[i] | -- E(1)
31 | i <- i + 1 | -- E(1)
32 | else
33 | A[k] <- R[j] | -- E(1)
34 | j <- j + 1 | -- E(1)
|
|
Das ist etwas informell, aber ich hoffe es zeigt dir die Idee.
Man kann die Laufzeit eines Algorithmus ermitteln, indem man die Laufzeit der einzelnen Aufrufe analysiert und danach summiert. Beim Summieren helfen die Landausymbole ungemein weil sie nervige Konstanten einfach verschlucken - deswegen benutzt man die so gern.
Unser Ziel ist es die Laufzeit von "MergeSort" in Abhängigkeit von n zu ermitteln, die Funktion nennen wir T(n). n ist die Anzahl der Elemente die sortiert werden sollen deswegen gilt "n = r - p". Das postuliere ich hier einfach mal, man sollte das vllt etwas begründen.
Danach schauen wir den Code von MergeSort zeilenweise an. Vergleiche und Zuweisungen brauchen konstante Zeit. Danach erkennen wir dass in den beiden rekursiven Aufrufen jeweils nurnoch (etwa) die Hälfte der Elemente sortiert wird, also T(n/2) Zeit gebraucht wird. Danach wird noch das magische Merge aufgerufen, das, behaupten wir einfach mal, T'(n) Zeit braucht. Es ergibt sich also eine Gesamtlaufzeit T(n) = 2 * T(n/2) + E(1) + T'(n). Beachte wie die E(1) "verschmelzen".
Für diese Art von Rekursionsgleichung bietet sich das Master-Theorem an, das wir hier ja schon ein paar mal hatten. Dafür müssen wir aber erstmal noch rausfinden was T'(n) ist, zumindest in welcher (Landau-)Klasse von Funktionen es liegt.
Also machen wir für Merge das selbe Spielchen wieder. Auch hier ist "n = r - p" und wir stellen voller Freude fest, dass keine rekursiven Aufrufe existieren. Dafür aber Schleifen, dazu kommen wir aber gleich.
Die Laufzeit von Merge ist die Laufzeit der "Blöcke" summiert. Zeilen 12, 13, 23, 24, 25, 26 sind alles Zuweisungen und brauchen E(1) Zeit. Ich gehe hier mal pessimistisch davon aus dass Zeile 15 E(n) Zeit braucht, weils im Grunde egal ist.
Anhand von Zeilen 17 und 18 will ich kurz den Umgang mit Schleifen erklären: In Zeile 17 steht, dass der Schleifenkörper E(n) mal ausgeführt wird. Man könnte genauer sagen dass das wsl irgendwas um n/2 sein wird, aber für die asymptotische Betrachtung ist der Vorfaktor egal, deswegen passt E(n) schon. Im Körper findet sich nur eine Zuweisung, die dauert E(1). Die ganze Schleife dauert dann E(1) * E(n) = E(n) Zeiteinheiten, die Summe der Zeilen des Körpers multipliziert mit der Anzahl der Aufrufe, was man intuitiv erwarten würde. Das ganze ist natürlich rekursiv für Schleifen in Schleifen usw. Das Spiel macht man auch für die ganzen anderen Schleifen.
Dann kommt raus, dass T'(n) = E(1) + E(n) = E(n).
Also ist T(n) = 2 * T(n/2) + E(n).
Damit ist T(n) sowohl von oben als auch von unten durch n * log n beschränkt.
e/ Der letzte Schritt ist Master Theorem und auf der Wikiseite sogar im Beispiel beschrieben.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 08.04.2013 15:39]
|
|
|
|
|
|
Ich habe gerade regelmäßig ein wenig Freizeit und will diese Nutzen um ein wenig neues Wissen und Handwerk zu erlernen. Deshalb such ich vernünftige zielorientierte Literatur (Bücher/Skripte/Tutorials). Prinzipiell auch gefilmte Vorlesungen. Vom MIT gabs früher mal ganz gute Mitschnitte.
1. Origin. Auch wenn matplotlib sicherlich nen Blick wert ist, würd ich doch gerne mal sagen, dass ich mich halbwegs mit Origin auskenn. Bin leider der einzige am Institut, der zumindest grundlegend Labtalk kann. Von OriginC und anderen tollen Dingen hab ich einfach keine Ahnung und die Doku von Originlab zu Labtalk und OriginC ist einfach grauenhaft und die Tutorials zu wenig führend und unstrukturiert.
2. Numerik. Ich hab mich im Studium für Plasmaphysik statt Numerik entschieden und finde es schade, dass mein Wissen über Numerik nun hauptsächlich darin besteht in Mathematica ein N vor das Kommando zu schreiben. Mir gehts auch weniger darum zu verstehen, wie exakt das aus irgendwelchen Axiomen hergeleitet und genähert wird als vielmehr die grundlegende Mechanismen und die Einsatzgrenzen zu verstehen.
3. QFT + QED. Konnte die Vorlesung damals leider nach wenigen Wochen nicht mehr besuchen. Seitdem steh ich mit unnützem Anfängerwissen über Lagrangedichten und ähnlichem da. Bringt mir zwar nichts für mein Forschungsgebiet, aber ein paar mehr Infos wären schon interessant. Meine Erfahrung mit Literatur zu allem mit Quanten* im Namen ist leider: Es gibt Bücher in denen steht nix drin und es gibt welche, die für mich unleserlich sind: Keine Bildchen, viel Formeln, wenig Erklärung. Letzteres ist zwar meist toll, wenn man das Gebiet eh schon kennt, da meist viel drinsteht. Ich heiß aber leider nicht WoS.
|
|
|
|
|
|
|
| Zitat von Swarley
dass mein Wissen über Numerik nun hauptsächlich darin besteht in Mathematica ein N vor das Kommando zu schreiben.
| |
Gibt's da noch mehr?
Punkt 3 schließe ich mich an.
|
|
|
|
|
|
|
Thx B0rG*
Hilft schonmal weiter
Noch ne andere Frage :
Wir sollen ein Programm schreiben das rekursiv Fibonacci berechnet . Nur soll jeder neue Aufruf in einem neuen Prozess geschehen..
Ich hab keine Ahnung wie das gehen soll ( Java )
|
|
|
|
|
|
|
|
|
|
|
Prozess != Thread
|
|
|
|
|
|
|
Das ist ein Auszug der Angabe :
der Aufruf java P1 2 erzeugt weitere Prozesse via java P1 1 und java P1 0.
Das Berechnungsergebnis wird über den exit status an den aufrufenden Prozess übergeben.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von b4ckspin am 08.04.2013 16:13]
|
|
|
|
|
|
Ich weiss das ist eine Übungsaufgabe und YOU DONT TALK ABOUT THE SINN IN THE ÜBUNGSAUFGABE, aber das macht mit Threads deutlichst mehr Sinn. :/
|
|
|
|
|
|
|
Ja Übungsaufgabe für Betriebssysteme .. komisches Zeug
|
|
|
|
|
|
|
|
|
|
|
ich seh mir das mal an. danke
|
|
|
|
|
|
|
Dieser hier sollte als Kontrollthread dienen und wieder pOT-Informatik heißen.
|
|
|
|
|
|
|
|
|
|
|
| Zitat von Swarley
2. Numerik. Ich hab mich im Studium für Plasmaphysik statt Numerik entschieden und finde es schade, dass mein Wissen über Numerik nun hauptsächlich darin besteht in Mathematica ein N vor das Kommando zu schreiben. Mir gehts auch weniger darum zu verstehen, wie exakt das aus irgendwelchen Axiomen hergeleitet und genähert wird als vielmehr die grundlegende Mechanismen und die Einsatzgrenzen zu verstehen.
3. QFT + QED. Konnte die Vorlesung damals leider nach wenigen Wochen nicht mehr besuchen. Seitdem steh ich mit unnützem Anfängerwissen über Lagrangedichten und ähnlichem da. Bringt mir zwar nichts für mein Forschungsgebiet, aber ein paar mehr Infos wären schon interessant. Meine Erfahrung mit Literatur zu allem mit Quanten* im Namen ist leider: Es gibt Bücher in denen steht nix drin und es gibt welche, die für mich unleserlich sind: Keine Bildchen, viel Formeln, wenig Erklärung. Letzteres ist zwar meist toll, wenn man das Gebiet eh schon kennt, da meist viel drinsteht. Ich heiß aber leider nicht WoS.
| |
2. Das könnte was sein: http://www.amazon.de/Mathematica-Theoretical-Physics-Classical-Mechanics/dp/0387016740/ref=pd_bxgy_eb_img_y
Nachtrag: Ich weiß nicht, ob dich Band 1 oder 2 mehr interessieren dürfte - in Band 2 gibt es u.a. Elektrodynamik
3. Such mal nach Quantum Field Theory Demystified - das ist imho die lesbarste und einfachste Einführung in QFT, die ich bisher in den Händen gehabt habe.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 08.04.2013 19:12]
|
|
|
|
|
|
| Zitat von Wraith of Seth
| Zitat von Swarley
2. Numerik. Ich hab mich im Studium für Plasmaphysik statt Numerik entschieden und finde es schade, dass mein Wissen über Numerik nun hauptsächlich darin besteht in Mathematica ein N vor das Kommando zu schreiben. Mir gehts auch weniger darum zu verstehen, wie exakt das aus irgendwelchen Axiomen hergeleitet und genähert wird als vielmehr die grundlegende Mechanismen und die Einsatzgrenzen zu verstehen.
3. QFT + QED. Konnte die Vorlesung damals leider nach wenigen Wochen nicht mehr besuchen. Seitdem steh ich mit unnützem Anfängerwissen über Lagrangedichten und ähnlichem da. Bringt mir zwar nichts für mein Forschungsgebiet, aber ein paar mehr Infos wären schon interessant. Meine Erfahrung mit Literatur zu allem mit Quanten* im Namen ist leider: Es gibt Bücher in denen steht nix drin und es gibt welche, die für mich unleserlich sind: Keine Bildchen, viel Formeln, wenig Erklärung. Letzteres ist zwar meist toll, wenn man das Gebiet eh schon kennt, da meist viel drinsteht. Ich heiß aber leider nicht WoS.
| |
2. Das könnte was sein: http://www.amazon.de/Mathematica-Theoretical-Physics-Classical-Mechanics/dp/0387016740/ref=pd_bxgy_eb_img_y
Nachtrag: Ich weiß nicht, ob dich Band 1 oder 2 mehr interessieren dürfte - in Band 2 gibt es u.a. Elektrodynamik
3. Such mal nach Quantum Field Theory Demystified - das ist imho die lesbarste und einfachste Einführung in QFT, die ich bisher in den Händen gehabt habe.
| |
Peskin & Schroeder ist doch für alles ausser Renormierung die erste Anlaufstelle? Das einzig wirklich wichtige was im P&S fehlt ist die Quantisierung vom Photonfeld aber zur Quantisierung gibts einfach DAS Buch schlecht hin: "Greiner - Feldquantisierung".
edit: Promotionsstelle geangelt! Jetzt nur noch die Masterarbeit schnell fertig machen
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SilentAssassin am 08.04.2013 20:02]
|
|
|
|
|
|
Ich halte den PS für alles außer Nachschlagen von Dingen die man verstanden hat(te) bis auf sehr, sehr wenige Ausnahmen für didaktische Scheiße^3.
Zu wenig Zwischenschritte, Ungefährzeichen, die immer wieder ihre Bedeutung ändern und dann immer beliebig viel Händewedeln enthalten, aber doch zuviel hinschreiben, als dass man mit dem Händewedeln zufrieden wäre (z.B. bei der Rechnerei zur Källen-Lehmann-Darstellung erinnere ich mich an sehr unbefriedigende Lücken im Text und den Rechnungen).
Mir ist absolut rätselhaft, warum dieses Buch jemandem als erste Lektüre nahegelegt werden sollte. Erst recht, wenn es Bücher wie den Zee, den Ryder, die Demystified-Reihe und mehr gibt.
Von den erschlagenden Übungsaufgaben ohne jede Lösungshilfe abgesehen...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 08.04.2013 20:14]
|
|
|
|
|
|
|
Code: |
import java.lang.Runtime.*;
import java.lang.Process.*;
public class P1{
public static void main(String[] args){
System.out.print("Geben Sie ein Zahl an: ");
int a = SavitchIn.readLineInt();
System.out.println("fib("+a+") = " + fibonacci(a));
}
private static int fibonacci(int a){
if (a==1||a==2) return 1;
else return fibonacci(a-1)+fibonacci(a-2);
}
} |
|
Ich check das mit den Prozessen noch nicht ganz.
Muss ich bei der Methode fibonacci drinnen was mit
Process p = Runtime.getRuntime().exec(...);
einbauen?
Es soll jede Berechnung in einem eigenen Prozess gemacht werden. Was soll ich hier aufrufen? "java Progname" ? kein Plan :/
|
|
|
|
|
|
|
ja und ja, aber das Programm muss die Zahl als Parameter nehmen und nicht aus StdIn
|
|
|
|
|
|
|
hat das was mit der exit value zu tun?
Wie?
|
|
|
|
|
|
|
Mit System.exit(ExitValue); kann man ein ein Programm mit der angegebenen ExitValue terminieren.
|
|
|
|
|
|
|
|
Code: |
private static int fibonacci(int a){
Process p = Runtime.getRuntime().exec(java P1);
if (a==1||a==2) return 1;
else return System.exit(fibonacci(a-1)+fibonacci(a-2));
}
|
|
so in etwa von der Idee her?
Der return geht so nicht ( cant return void result)
|
|
|
|
|
|
|
ne, nicht so
das spawnt für jeden Rekursionsschritt einen neuen Prozess, berechnet das Ergebnis aber trotzdem so wie vorher
und ohne return, das System.exit ersetzt das return quasi
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Redh3ad am 08.04.2013 21:26]
|
|
|
|
|
|
Du denkst noch zu sehr ... ich nenn es mal "in code". Du willst nicht innerhalb des Programms selbst einen Wert zurückgeben, sondern beim Terminieren dem aufrufenden Prozess den Wert mittels ExitCode mitgeben.
Entsprechend muss der exec-Call natürlich auch eine Zahl (nämlich die, von der die Fibonacci-Zahl erechnet werden soll) enthalten. Und wenn diese Zahl nicht 1 oder 2 ist, dann müssen natürlich neue Prozesse mit Zahl-1 und Zahl-2 gestartet werden.
|
|
|
|
|
|
|
Man sollte ihn erstmal wegen seiner if-else-Schreibweise schlagen! Hart! Auf die Eichel!
|
|
|
|
|
|
|
|
Code: |
private static int fibonacci(int a){
Process p = Runtime.getRuntime().exec(java P1);
if (a==1||a==2) return 1;
else System.exit(fibonacci(a-1)+fibonacci(a-2));
}
|
|
geht ja nicht weil return typ. irgendwas überseh ich da grad voll glaub ich %)
|
|
|
|
|
|
|
Anführungszeichen
|
|
|
|
|
|
|
das ist glaub ich das geringste Problem, das schmeißt dir der Compiler ja schon an den Kopp
aber es gibt da noch ein ziemliches Verständnisproblem
Tipp für b4ckspin: das Programm darf keine rekursiven Aufrufe enthalten
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Redh3ad am 08.04.2013 21:36]
|
|
|
|
|
|
| Zitat von Wraith of Seth
Ich halte den PS ... für didaktische Scheiße^3.
...
Mir ist absolut rätselhaft, warum dieses Buch jemandem als erste Lektüre nahegelegt werden sollte.
| |
fixed
|
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XIII ( Completely Automated Public User Test To tell PIMP ) |