Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

Re: Zufällig Zahlen ziehen, aber ohne Wiederholung

  Alt 29. Apr 2010, 21:02
Also mit Delphi 2 und/oder 3 kann man's nicht übersetzen, da zB keine dynamischen Arrays bekannt sind.

Dann ein Bug: '<' muss durch '<=" ersetzt werden, sonst erhält man nicht die gesamte Liste (das berüchtigte 1-mehr/weniger-Problem):
Delphi-Quellcode:
function TUniqueRandomSequenceGenerator.GetNextNumber: Integer;
begin
  if FCounter <= High(FNumberList) then begin // hier <= statt <
    Result := FNumberList[FCounter];
    Inc(FCounter);
  end
  else
    raise ENoMoreNumbers.Create('No more numbers');
end;
Aus Konsistenzgünden sollte statt Length(FNumberList) hier j := i + Random(Length(FNumberList) - i); auch TotalCount benutzt werden,


Gruß Gammatester
  Mit Zitat antworten Zitat