Einzelnen Beitrag anzeigen

einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#3

AW: Einfache "Kugeln Ziehen"-Aufgabe mit Schleife

  Alt 25. Jan 2012, 20:42
Hallo yga,

abgesehen von den Tipps von Helmi, hast du glaube ich das Ziehen der Kugeln falsch umgesetzt. Kleine Denkaufgabe:
Du hast 5 Weiße und 5 Schwarze Kugeln im Topf. Und bei der Zeile
  fall:=(Random(2)+1); {Welcher Fall tritt ein?}
kommt die ersten dreimal eine 2 raus. Kann das funktionieren? Kann man wirklich 6 Weise Kugel ziehen ob wohl nur 5 im Topf sind.
Ich würde das Ziehen einer Kugel so machen:
Delphi-Quellcode:
 if Random(s+w)> s then
   // Eine Weiße gezogen
 else
   // Eine Schwarz gezogen
Und dann   randomize; ruft man nur einmal auf. Zum testen und debuggen ersetzt man diesen durch eine Zuweisung einer Konstanten Zahl zu RandSeed . Also für das Debuggen so:
Delphi-Quellcode:
procedure TForm1.KugelnZiehen(Sender: TObject);
...
begin
  RandSeed:= 42;
  // Jetzt Algo mit Zufallszahlengenerator
end;
Dadurch bekommt man beim Durchdebuggen immer wieder reproduzierbare Zufallszahlen.

einbeliebigername.
  Mit Zitat antworten Zitat