Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Anzahl an Zufallszahlen bestimmen?


LoI - Sa 27.08.05 19:53
Titel: Anzahl an Zufallszahlen bestimmen?
Hallo!

Ich beschäftige mich erst seit kuirzem mit Delphi und bin noch nicht wirklich hinter das Geheimnis gekommen... deshalb meine Frage:

Wie kann ich es anstellen, dass der Zufallsgenerator nur eine bestimmte Anzahl von Zufallszahlen erzeugt und anzeigt?

Danke, LoI


uall@ogc - Sa 27.08.05 19:55

randomize // zufallsgen initialisieren

random(20) zahlen von 0-19

hättest aber auch alles denk ich mal durch die suche gefunden


LoI - Sa 27.08.05 19:57

Nein, das meine ich nicht. In welchem Raum die Zufallszahlen generiert werden sollen, habe ich. Aber die Anzahl der angezeigten Zahlen will ich bestimmen. Die sollen nicht zwischen 1 und 20 liegen, sondern sollen eben nur bspw. 3 betragen.


Blackheart666 - Sa 27.08.05 20:08


Delphi-Quelltext
1:
2:
3:
4:
var
i:Integer;
Edit1.Text:=StrToInt(i)
Random(i)


starsurfer - Sa 27.08.05 20:11

ka ob ichs richtig verstehe, aba du willst z.B. das der 3 Zufallszahlen oder 7 ermittelt?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure zufall;
var i:integer;
    zahl:real;
begin
randomize;
for i:=0 to <anzahl> do
begin
zahl:=random(20)+1;
listbox1.items.add(inttostr(zahl));
end;
end;


Gausi - Sa 27.08.05 20:18

Meinst du sowas?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button1Click(Sender: TObject);
var arr: array[0..30of integer;
  i,z:integer;
begin
  randomize;
  // Array initialisieren
  for i:=0 to 30 do
    arr[i] := 0;

  // 100 mal eine Zufallszahl erzeugen und
  // das Array an der entsprechenden Stelle erhöhen
  for i:=1 to 100 do
  begin
    z := random(31);
    arr[z] := arr[z]+1;
  end;

  // Ausgabe
  for i:=0 to 30 do
    memo1.Lines.add(inttostr(i) + ': ' + inttostr(arr[i]));
end;


LoI - Sa 27.08.05 20:20

Danke für die Antworten, aber irgendwie kriege ich das nicht hin.

Also ungefähr so: Per Zufallsgenerator sollen Zahlen in eine Tabelle gesetzt werden. Die Zahlenwahl soll zufällig sein. Aber die Anzahl der Zahlen, die dort reingesetzt wird beträgt halt nur bspw. 3.


uall@ogc - Sa 27.08.05 20:23

dann rufst du 3 mal random auf


wenn du aber willst das 3 zufallszahlen von 0..2 erstellt werden sollen und jede nur EINMAL dann musst du dich selbst drum kümmern, aber deine formulierungen sind echt nich zu verstehen ;P


Blackheart666 - Sa 27.08.05 20:28

Sowie sich das anhöhrt 6 aus 49 ?


LoI - Sa 27.08.05 20:38

Ja, 6 aus 49. Ein Lottogenerator - nicht einmal sowas Einfaches bekomme ich hin.


uall@ogc - Sa 27.08.05 20:41


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var i : integer;
bla: array[1..49of boolean;
begin
  for i := low(bla) to high(bla) do bla[i] := false;
  for i := 1 to 6 do
  begin
    repeat 
     j := random(49)+1
    until bla[j] = false;
    bla[j] := true;
    listbox1.items.add(inttostr(j));
  end;
end;


LoI - Sa 27.08.05 20:50

Ich arbeite mit StringGrid... daher funktioniert das mit der Listbox nicht. Und wenn ich den Namen einfach austausche, dann geht es trotzdem nicht.


uall@ogc - Sa 27.08.05 20:53

http://www.delphi-forum.de/viewtopic.php?t=37446&highlight=crashkurs