Suche Hilfe für kleines Simulationsprogramm :-D
-
Hallo @ll!!!
Ihr seid evtl. meine letzte Hoffnung für ein kleines Projekt das ich fürs Studium brauche! Ich schaff es leider nicht allein!!
Ist sicherlich nix großes und wenn jemand sich ein wenig Moos verdienen will (Verhandlungsbasis), kann er sich bei mir melden und ich sende mal die Aufgabe!!!
Sicherlich für einen geübten Borlander kein Thema aber ich finde weder Literatur noch habe ich die Skills!!!
Es handelt sich um ein Programm das eine Mensa simmuliert!
Es sind Wahrscheinlichkeiten für die Menüs gegeben, und daraus soll man dann Erwartungswert und Varianzen bestimmen!
Aber die komplette Aufgabe + alles andere würde ich lieber per Email regeln!!!
Thx an alle Interessierten!!!
-
Hej,
du willst dir also mit Geld dein Studium erkaufen?
Gib doch mal ein paar mehr Infos wie das Programm aussehen soll, inner Konsole, im MFC-Stil oder mit richtig Grafik und so???
ByeBye, Viking69
-
Jo, der LIeferumfang wär schon sehr wichtig um ne Preisbestimmung zu machen...$
-junix
-
hihi,
also wir haben bis jetzt immer alles als Konsolenanwendung gemacht! Mit einen main-file, die Deklaration in einer Headerdatei, und die Implementierung in einer C++ Datei!Weis ja nicht wie ihr das so macht!?kenn es nur so!
Ja, habe im Moment ziemlichen Stress, und weis nicht wie ich mir das noch in der Zeit beibringen kann!
Hier kurze Aufgabenstellung:
Implementieren Sie ein C++ Programm für die stochastische Simulation der Mensa!
Sie bietet Essen zu unterschiedlichen Preiskategorien an.Die Kategorien sind aber nicht gleichbleibend im Angebot, sondern haben die folgende statistische Verteilung: Preiskategorie : 2,30 | 2,80 | 3,00 | 3,30 | 3,40 | 3,80 | 4,00
Wahrscheinlichk.: 0,05 | 0,1 | 0,2 | 0,3 | 0,2 | 0,1 | 0,05Die Anzahl der täglichen Essensteilnehmer ist normal verteilt mit dem Erwartungswert 90 und der Varianz 25!!
Die Auswahl der Preiskategorie erfolgt umgekehrt proportional zur Preiskategorie unter Berücksichtigung der Normierung zur Wahrscheinlichkeit,
Schätzen Sie die mittleren Einnahmen der Mensa! Geben Sie ein Konfidenzintervall für die täglichen Einnahmen zum Niveau 95% an!!!
So was haltet ihr davon!?!?!?
-
mach doch mal einen vorschlag, was du zahlen würdest für dieses programm.
(und weniger ausrufezeichen erhöhen die glaubwürdigkeit)
-
Hej,
also ich denke vom reinen Programmieraufwand ist des Ding net so hoch, aber des ganze MatheZeugsWenn du mir des erklaeren koenntest...
ByeBye, Viking69
-
Joerg de Boerg schrieb:
So was haltet ihr davon!?!?!?
Ich halte es für das Letzte, dass du dir deine Studienleistungen von anderen erkaufen willst. Ich wünsche dir, dass du dein Studium nicht schaffst.
...was übrigens auch sehr wahrscheinlich ist, wenn du bei so einfachen Aufgaben schon auf fremde Hilfe angewiesen bist und nicht den Biss hast, dich da selbst durchzukämpfen. *SCNR*
-
Gregor schrieb:
Joerg de Boerg schrieb:
So was haltet ihr davon!?!?!?
Ich halte es für das Letzte, dass du dir deine Studienleistungen von anderen erkaufen willst. Ich wünsche dir, dass du dein Studium nicht schaffst.
...was übrigens auch sehr wahrscheinlich ist, wenn du bei so einfachen Aufgaben schon auf fremde Hilfe angewiesen bist und nicht den Biss hast, dich da selbst durchzukämpfen. *SCNR*
-
..
-
..
-
Vielen Dank für die Anregungen und auch für die Kritiken
Kann es verstehen wenn es bei machen einen gewissen Unmut hervorruft. Nur habe ich in anderen Fächern keinerlei Porbleme aber nun ein Projekt in C++ wovon ich kaum Ahnung habe. Hätte ja auch Aris ziehen können ... aber nein
Ich dank erstmal für die kleinen Programme und werd doch irgendwie zwischen den anderen Prüfungen es wohl selbst versuchen müssen. War ja auch nur eine fixe Idee von mir hier zu fragen.
Alle Programme die wir in der Übung gemacht haben, sind leider komplett anders gewesen (berühmten Tankerflottenbeispiele
).Trotzdem dank an all diejenigen die mir hier ein wenig geholfen haben.
Was für euch einfach erscheint, ist für mich wahrscheinlich kompliziert. ist wohl nicht jeden Quellcode in die Wiege gelegt worden.
Wenn ich an ein gescheites Buch in der Hinsicht kommen würde wäre es auch von Vorteil. Stroustrupp geht nicht soweit und ein anderes Buch habe ich auch vergebens angeschaut, welches sich mit Simulation beschäftigt! Wieder war nur die Tankerflotte da
Naja wünsch euch trotzdem alles gute
Und nochmal vielen Dank an Erhard Henkes, für die Mühe die du dir gegeben hast. Wenns bei mir klickt dann bekomm ich es ja vielleicht doch hin
-
Vielen Dank für die Anregungen und auch für die Kritiken
Kann es verstehen wenn es bei machen einen gewissen Unmut hervorruft. Nur habe ich in anderen Fächern keinerlei Porbleme aber nun ein Projekt in C++ wovon ich kaum Ahnung habe. Hätte ja auch Aris ziehen können ... aber nein
Ich dank erstmal für die kleinen Programme und werd doch irgendwie zwischen den anderen Prüfungen es wohl selbst versuchen müssen. War ja auch nur eine fixe Idee von mir hier zu fragen.
Alle Programme die wir in der Übung gemacht haben, sind leider komplett anders gewesen (berühmten Tankerflottenbeispiele
).Trotzdem dank an all diejenigen die mir hier ein wenig geholfen haben.
Was für euch einfach erscheint, ist für mich wahrscheinlich kompliziert. ist wohl nicht jeden Quellcode in die Wiege gelegt worden.
Wenn ich an ein gescheites Buch in der Hinsicht kommen würde wäre es auch von Vorteil. Stroustrupp geht nicht soweit und ein anderes Buch habe ich auch vergebens angeschaut, welches sich mit Simulation beschäftigt! Wieder war nur die Tankerflotte da
Naja wünsch euch trotzdem alles gute
Und nochmal vielen Dank an Erhard Henkes, für die Mühe die du dir gegeben hast. Wenns bei mir klickt dann bekomm ich es ja vielleicht doch hin
-
Ja, zeig mal, wir helfen dann sofort weiter.
Poste doch mal so ein komplettes Tankerflottenbeispiel, oder schicke es mir per mail.
-
Die Zahl der Studenten haben wir ja schon, die schwanken zwischen 80 und 100 (Grenzen bei Normalverteilung: 90 +- 2*sqrt(25) ). Du brauchst keinen gleichverteilten Generator, sondern einen mit Normalverteilung, also mit unterschiedlicher Wahrscheinlichkeit der erzeugten Zahlen.
Wie machst du das mit der Essensauswahl durch die Studenten? Hast du da schon eine eigene Idee oder soll ich meine posten?
Hier findest du übrigens einen ziemlich universellen Zufallsgenerator:
http://www.c-plusplus.net/forum/viewtopic.php?t=47483&highlight=w�rfelnboost/random bietet ebenfalls eine ganze Palette. Ist für dich vielleicht am einfachsten.
-
Studenten: x[date] = 80 + rand()%21) ;
Preiskategorie : 2,30 | 2,80 | 3,00 | 3,30 | 3,40 | 3,80 | 4,00
Wahrscheinlichk.: 1 | 2 | 4 | 6 | 4 | 2 | 1 (Summe: 20)Man könnte z.B. gleichverteilte(!) Zufallszahlen erzeugen im Bereich 0 ... 19 und dann über switch/case-Abfrage der Zufallszahl das entsprechende Essensangebot zufällig aber entsprechend gewichtet zurückgeben.
0 -> 2,30
1,2 -> 2,80
3-6 -> 3,00
7-12 -> 3,30
13-16 -> 3,40
17,18 -> 3,80
19 -> 4,00Wenn man min. 80 Studenten erwartet, bietet man z.B. 80 Essen nach dieser Verteilung in einer Schleife an. Man muss immer, wenn ein Essen völlig aus ist, neues Essen dieser Sorte nachschieben. Das sollte man aber möglichst alles flexibel gestalten, damit man entweder den Umsatz/Gewinn maximieren kann bzw. die Studenten zufrieden stellt.
Jetzt fehlt nur noch der Zugriff der Studenten auf das Essensangebot:
"Die Auswahl der Preiskategorie erfolgt umgekehrt proportional zur Preiskategorie unter Berücksichtigung der Normierung zur Wahrscheinlichkeit".
Also bilden wir den Kehrwert von jedem Preis und normieren in der Summe auf 10000000000:2,30 0,4348 1944844717
2,80 0,3571 1597551017
3,00 0,3333 1491047616
3,30 0,3030 1355497833
3,40 0,2941 1315630250
3,80 0,2632 1177142855
4,00 0,2500 1118285712sum: 2,2356 10000000000
Diesen Rechenschritt sollte man auch einbauen, damit man das allgemein hat.
Dann können wir wieder Zufallszahlen (vielleicht 1...10000) erzeugen und via if/else einen Zugriff eines Studenten auf das Essen simulieren. Also bei 1 ... 10000:
1 ... 1597 -> 2,80
1598 ... 3088 -> 3,00
etc.Vielleicht gibt es auch noch einfachere Ideen. Bin ja kein Mathematiker.
-
..
-
Ist dir langweilig Erhard Henkes? *g
-
noch ein kleiner tipp am rande...
zum testen von simulationen nimmt man eigentlich immer feste unterschiedliche seeds und ärgert sich nicht mit einem srand(time(0)) rum...die abbildung der normalverteilung durch die gleichverteilung wie erhard sie vorschlägt halte ich zumindest für verbesserunugswürdig. da würde ich glaube ich lieber einen fertigen randomnumbergenerator für verwenden....
Schätzen Sie die mittleren Einnahmen der Mensa! Geben Sie ein Konfidenzintervall für die täglichen Einnahmen zum Niveau 95% an!!!
hierbei sollte man bedenken das die werte von zufallsgeneratoren öfters nicht unabhängig sind... wenn man die varianz aber nach der normalüblichen formel schätzt wird diese bei positiver korrelation unterschätzt was meist heisst das man zu früh aufhört zu simulieren da dann das konfidenzinterwall meist schon die gewünscht grösse bekommen hat in wirklichkeit ist es aber viel grösser da die varianz ja unterschätzt wurde...
überlicherweise lässt man die simulation auch mit verschiedenen seeds am ende durchlaufen um abschätzen zu können ob die ergebnisse halbwegs konstannt bleiben...
hat man ein system mit einer transiente, also eine simulation die sich erst einschwingen muss ist es in der Praxis wohl üblich 3 simulation mit unterschiedlichen seeds nebeneinander laufen zu lassen und die werte der simulation zu nehmen die am längsten läuft...
-
die abbildung der normalverteilung durch die gleichverteilung wie erhard sie vorschlägt halte ich zumindest für verbesserunugswürdig. da würde ich glaube ich lieber einen fertigen randomnumbergenerator für verwenden....
Stimmt, hier sollte man einen Generator mit Normalverteilung einsetzen (boost, blitz). Jetzt warte ich aber erst mal, was der Anfrager so vorschlägt/fragt.
-
Ich weiss nicht ob das jetzt stimmt was ich von mir gebe aber so als idee um eine normalverteilung zu approximieren...
bildet man aus einer stichprobe eines samples einer beliebig verteilten zufallsvariable (ich weiss jetzt gar nicht ob hier auch gelten muss das die unabhängig von einander verteilt sind aber nehmen wir das mal an) den mittelwert so gilt x_quer ist normalverteilt mit (mü,sigma^2/n)... (das ist ja gerade der spass den man auch beim konfidenzintervall annimmt)
das mü von deiner verteilung kennst du ja, wenn du ne gleichverteilung hast und %n rechnest ist das mü gerade (n-1)/2 (das sigma schätzt du aus dem sample)...
dann hast du eine normalverteilte zufallsvaribale (ich würde empfehlen ca. 20 werte aufzuaddieren)...
zum transformieren auf die normalverteilung die du brauchst müsstest du dann nur entsprechend den abstand zwischen mü und den 90 studenten verschieben und dann noch die varianz stauchen oder strecken...
-
so, das ganze driftet etwas ab