Thema: Delphi Ordung muss sein

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#31

Re: Ordung muss sein

  Alt 4. Okt 2003, 13:58
Delphi-Quellcode:
  if Bereitsgezogen < 6 then begin
    Repeat
      kugel := random (48) + 1;
      i := i + 1;
    until not (kugel in gezogene);
und genau hier ist wieder der Fehler drinnen, der diesen Algo. eben nicht identisch zu meinen macht.

Angenommen 3 Kugeln wurden schon gezogen, dann verbleiben 46 Kugeln in der Urne und somit muß es Random(46) heissen. Eine Kugel die bereits gezogen wurde KANN NICHT erneut aus der Urne gezogen werden da sie nicht mehr enthalten ist. In deinem Code ziehst du immer eine Kugel aus immer 49 ( 48 ) Kugeln und falls sie schon gezogen wurde, schmeisst du sie zurück in die Urne und zieht nochmal eine Kugel. Damit verändern sich die Wahrscheinlichkeiten pro Kugel in der Urne mit der sie gezogen werden kann. Der Algo. simuliert also ebenfalls nicht die Lotto-Realität und ist falsch.
Zudem wird mit Random( 48 ) = 0..47 + 1 = 1..48 nicht 1 aus 49 gezogen sondern 1 aus 48.

Gruß Hagen
  Mit Zitat antworten Zitat