Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#55

Re: Zufallszahl ziehen ohne wiederholung

  Alt 8. Feb 2009, 04:44
Delphi-Quellcode:
type TIntArr = Array of Integer;

...

function _Random( Range: Integer; var List: TIntArr ): Integer;
var
  i, x: Integer;
begin
  if Length(List) = 0 then
  begin
    SetLength(List, Range);
    for i := 0 to High(List) do
      List[i] := i;
  end;
  x := Random(Length(List));
  Result := List[x];
  for I := x+1 to High(List) do
    list[i-1] := list[i];
  SetLength( List, High(List) );
end;

...

// der wert "range" wird nur beim ersten aufruf benutzt, und wenn die liste leer ist
// wird sie halt neu initialisiert :P
// --Klatsch ne Memo und nen Button auf die Form und im OnClick Ereignis schreibst du
// --folgendes
var
  x: Integer;
  i: Integer;
begin
  x := _Random( StrToInt(Edit1.Text), Numbers );
  Memo1.Clear;
  for i := 0 to High(Numbers) do
    Memo1.Lines.Add( inttostr(i+1) + '.'#9 + IntToStr(Numbers[i]) );
  Caption := 'Random Number - ' + IntToStr(X);
  Mit Zitat antworten Zitat