Wahrscheinlichkeitssimulation < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 14:41 Fr 09.12.2011 | Autor: | Fias |
Aufgabe | Bestimmen Sie durch Simulation die Wahrscheinlichkeit bei Euromillions alle Zahlen und Sterne richtig getippt zu haben. |
Irgendwie funktioniert bei mir, meine zu Aufgabe gelösten Simulation nicht ganz. Ich bin wie folgt vorgegangen:
summe = 0.;
m = 100000000;
Do[zuzahlen = Union[Table[Random[Integer, {1, 50}], {k, 1, 5}]];
While[Length[zuzahlen] [mm] \not= [/mm] 5,
zuzahlen = Table[Random[Integer, {1, 50}], {k, 1, 5}]];
zusterne = Union[Table[Random[Integer, {1, 11}], {k, 1, 2}]];
While[Length[zusterne] [mm] \not= [/mm] 2,
zusterne = Table[Random[Integer, {1, 11}], {k, 1, 2}]]; test = 0;
Do[If[And[zuzahlen == wz, zusterne = ws], test = 1], {k, 1, 5}];
If[test == 1, summe = summe + 1], {k, 1, m}]; p = (
summe*100)/m; Print["Die Wahrscheinlichkeit, dass Sie alle Zahlen
und Sterne richtig getippt haben, liegt bei ", p,"%" ];
Als Lösung kommt dabei 0& heraus. Dies ist allerdings falsch. Was habe ich falsch gemacht? (PS: ws und wz sind irgendwelche Listen von Zahlen bzw. Sternen die der Beutzer eingeben kann -> an dem sollte es also nicht liegen)
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: http://www.cosmiq.de/qa/show/3247414/Gibt-es-hier-jemand-der-sich-mit-dem-Programm-Matematica-auskennt-Ich-haette-ja-eine-Frage/
Eine kleine Ergänzung:
Zunächst einmal vielen Dank für diese ausführliche Antwort.
Allerdings bin ich mit den Befehlen die du verwendest etwas überfordert. Vielleicht sollte ich an dieser Stelle mal kurz aufzeigen, was ich mit meiner Idee gemeint habe:
Zunächst einmal habe ich zwei Listen gemacht, eine für die Sterne und eine für die Zahlen. Dann habe ich eben mit meinem Befehl harausfinden wollen wie viel mal in 1000000 Versuchen, die Zahlen und Sterne übereinstimment. Dazu habe ich eine Do-Schleife gewählt. Dazwischen habe ich am anfang den Befehl gegeben, dass wenn er keinen Treffer landet (also wenn nicht alle Zahlen und Sterne richtig getippt wurden) das ganze von vorne beginnt. Wenn allerdings der Fall eintritt, dass die richtigen Sterne und Zahlen getippt wurden, soll bei der Summe 1 addiert werde. Die Summe wird am Schluss als Prozentanteil der Versuche (also 1000000) berechtnet.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:13 Fr 09.12.2011 | Autor: | Peter_Pein |
Hallöle,
für Leute, die diese Lotterie nicht kennen, wäre ein Link auf die Regeln hilfreich.
Erwartungswert ist einfach:
In[1]:= 1/(Binomial[50,5]Binomial[11,2])
Out[1]= 1/116531800
immerhin etwas besser, als beim deutschen Lotto, den Jackpot zu holen (1 zu 10 mal (49 über 6)).
Aber es macht verständlich warum bei "nur" 100 Millionen Ziehungen kein Volltreffer dabei ist.
Du verwendest While, RandomInteger und Union
Daumen runter, weil's dauern kann.
Schau mal in der Hilfe zu Mathematica nach RandomSample.
Falls sicher ist, dass sowohl wz als auch zuzahlen sortiert vorliegen,
verstehe ich nicht, was
[#000000]Do[If[And[zuzahlen == wz, zusterne = ws], test = 1], {k, 1, 5}];[/#000000]
bringt, außer einer Redundanz und Verzögerung
Bei mir läuft zu Zeit dieser Ansatz:1: | In[1]:= ziehung[anz_]:=Table[ParallelMap[Sort,{RandomSample[Range[50],5],RandomSample[Range[11],2]}],{anz}];
| 2: | In[2]:= meintipp=First[ziehung[1]]
| 3: | Out[2]= {{2,3,26,30,43},{2,3}}
| 4: | With[{miozieh=100},
| 5: | Module[{treffer=0},
| 6: | Do[
| 7: | treffer+=Count[ziehung[10^6],meintipp,1],
| 8: | {miozieh}];
| 9: | treffer/10^8]//Timing
| 10: | ] |
inzwischen werde ich mal einen Stadtbummel machen und schauen was dabei herauskommt; 0 wäre zwar enttäuschend, aber ziemlich wahrscheinlich.
Gruß,
Peter
P.S.: wie hast Du's denn hinbekommen, dass der code nicht vom Editor entstell wurde und keine Zeilennummerierung dabei ist?
Ich kenne nur [code]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Sa 17.12.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|