Hallo,
ich habe ein kleines Problem mit der Entwicklung eines eigenen Algorithmus.
Zur Aufgabe:
Spieler A wirft eine Münze solange bis "Wappen" erscheint, er wirft jedoch höchstens 5 mal. Für jeden Wurf muss er 1€ an Spieler B Zahlen.
Ist nach dem 5. Wurf immer noch kein "Wappen" dabei gewesen so muss er zu den 5€ noch 7€ extra zahlen, also insgesamt 12€ wenn kein Wappen erscheinen sollte.
Hierfür haben wir im Unterricht den Erwartungswert errechnet, dieser beträgt 2,156€.
Auf lange Zeit wird also Spieler A 2,16€ an Spieler B pro Spiel zahlen.
Um zu testen ob dies wirklich so ist, wollte ich jetzt ein Programm entwerfen mit dem ich eine lange Versuchsreihe mache, um zu schauen ob sich der Durchschnitt dem Erwartungswert annähert.
Ich habe auch schon etwas Code, komme jedoch leider nicht weiter und meine function liefert mir jedes mal "19" zurück.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| function TForm1.VersuchAnnaeherung(AValue : Integer) : Single; var spiele : Integer; wappen, i : Byte; begin Result := 0; wappen := 0; i := 0; Randomize; for spiele := 1 to AValue do begin while (wappen = 0) and (i <= 6) do begin Inc(i); wappen := Random(2); if i >= 6 then begin Result := Result + 7; end else begin Result := Result + 1; end; end; i := 0; wappen := 0; end; Result := Result / AValue; end; |
Ich hoffe ihr könnt mir weiterhelfen, denn ich komme einfach nicht weiter.
Mit freundlichen Grüßen,
Dude566
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.