Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallszahlen von 1-26 generieren (https://www.delphipraxis.net/137855-zufallszahlen-von-1-26-generieren.html)

Blup 30. Jul 2009 08:16

Re: Zufallszahlen von 1-26 generieren
 
Zu Lottozahlen und Zufallsfolgen gibt es ja bereits reichlich Beiträge hier.
Auch einen relativ universelle Funktion von mir:
http://www.delphipraxis.net/internal...t.php?t=151677 :wink:
Lottozahlen(1, 26, 26)

cruiser 30. Jul 2009 15:38

Re: Zufallszahlen von 1-26 generieren
 
Ich hab auch noch einen:

Delphi-Quellcode:
function MakeRandomIntArray(start, count: Integer): TIntegerDynArray;
var
   i, rnd, pnt: Integer;
begin
   SetLength(Result, count);
   
   for i = Low(Result) to High(Result) do
      Result[i] = start - 1;
   
   repeat
      rnd = Random(count);
      pnt = -1;
      i = -1;
      while pnt < rnd do
      begin
         Inc(i);
         if Result[i] < start then
            Inc(pnt);
      end;
      Dec(count);
      Result[i] = count + start;
   until count = 1;
   
   for i = Low(Result) to High(Result) do
      if Result[i] < start then
         Result[i] = start;
end;
ist aus nem c# projekt übersetzt und ungetestet, müsste aber seinen zweck tun

MakeRandomIntArray(1,26) sollte deinen Fall abdecken

Draos 30. Jul 2009 16:53

Re: Zufallszahlen von 1-26 generieren
 
Hab eine von Karten Mischen gemacht. Recht lustig sowas.
Delphi-Quellcode:
var I1,I2           :Byte;
    Merge          :Cardinal;
    iWerte         :Array of Integer;
begin
 Randomize;
 SetLength(iWerte,26);
 for I1:=0 to High(iWerte) do
  iWerte[I1]:=I1+1;

 while Merge>0 do begin
  I1:=Random(Length(iWerte));
  repeat
   I2:=Random(Length(iWerte));
  until I2<>I1;
  Tmp:=iWerte[I1];
  iWerte[I1]:=iWerte[I2];
  iWerte[I2]:=Tmp;
  Dec(Merge);
 end;
end;

Uwe Raabe 30. Jul 2009 19:41

Re: Zufallszahlen von 1-26 generieren
 
Zitat:

Zitat von Draos
Hab eine von Karten Mischen gemacht. Recht lustig sowas.

In der Tat recht lustig, wenn das nicht initialisierte Merge zufällig einen recht großen Wert hat...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz