AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zufalsgenerator - Zahlen auslassen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Zufalsgenerator - Zahlen auslassen ?

Ein Thema von Cyberbob_at_tot · begonnen am 20. Okt 2004 · letzter Beitrag vom 25. Okt 2004
Antwort Antwort
Seite 1 von 3  1 23      
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#1

Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 10:24
Guten morgen zusammen
habe da mal ne Frage,
wenn ich aus 10 Zufalszahlen nehme und nach jeder die gezogene Zahl aus dem Pool der 10 nehme.
Also beim zweiten Durchgang eine zufalszahl aus 9 usw.

diese Zahl die entfernt wird kann aber auch mitten drin sein also auch die 5, somit muss aus 10 aber ohne die 5!
Hoffe ich habe es so erklärt das man es versteht!

Habt ihr vorschläge ?

THX

Cyberbob
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 10:28
Delphi-Quellcode:
var Used: array[1..10] of Integer; i, x, t: Integer;
begin
  Randomize;
  i := 1;
  while i <> 11 do
  begin
    t := Random(10)+1;
    for x := 1 to i do
      if Used[x] = t then Break;
    if x = i+1 then
    begin
      Used[x] := t;
      Inc(i);
    end;
  end;
end;
Dieser Code füllt dein Array Used mit 10 unterschiedlichen Zahlen zwischen 1 und 10.
Beware: untested.
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 10:31
Werde ich mal ausprobieren! danke

dazu noch ne Frage : wird die 0 mitgenutzt ?
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 10:32
Nein. Random(10)+1 produziert Zahlen zwischen 1 und 10, wenn du das +1 wegnimmst, zwischen 0 und 9.
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:00
Habe es nun versucht leider ist es eine entlosschleife. wenn ich mir den Inhalt des Arrays anzeigen lassen will kommt nur eine große Zahle so 328777777 oder so!

Delphi-Quellcode:
Var
V:integer;
Used: array[1..10] of Integer;
i: Integer;
begin
Randomize;
  i := 1;
  Showmessage(inttostr(ID.length));
  while i <> ID.length do
  begin
    zahl:=Random(ID.length)+1;
    for V := 1 to i do
      Showmessage(inttostr(Used[V]));
      if Used[V] = zahl then Break;
      if V = i+1 then begin
                      Used[V] := zahl;
                      Inc(V);
      end;
  end;
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#6

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:06
Natürlich ist es eine Endlosschleife. Die Schleife läuft bis i = Id.Length ( <- was ist überhaupt ID ) ist. Du erhöhst aber nirgendwo den Wert von i. Also wird das nie zutreffen. Ausserdem würd ich nicht auf i <> id.length sondern auf i < id.length prüfen.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:06
Oh... so stimmts:
Delphi-Quellcode:
var Used: array[1..10] of Integer; i, x, t: Integer;
begin
  Randomize;
  i := 1;
  FillChar(Used[1], 10*sizeof(Uses[1]), 0);
  while i <> 11 do
  begin
    t := Random(10)+1;
    for x := 1 to i do
      if Used[x] = t then Break;
    if x = i+1 then
    begin
      Used[i] := t;
      Inc(i);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:15
ID.length ist die Länge einer Liste.
Er soll also in der LIste zufällig eine Zeile finden! und diese nicht nocheinmal nehmen!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:31
Habe es nun mit der Verbesserubg ausprobiert aber leider kommen immer noch welche Doppelt!
Bis zur 4ten Stelle passt das Array dann schreib er nix mehr rein!

Soll ich euch das Programm mal hochladen ?

Was ich noch nicht verstehe sind die Zeilen...
FillChar(Used[1], 10, 0);
used[1] := 9;

BIG THX
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#10

Re: Zufalsgenerator - Zahlen auslassen ?

  Alt 20. Okt 2004, 11:35
Wie hat sich denn das 9-Assignement da eingeschlichen?

Aber du musst statt '10' schon die Länge des Arrays angeben, sonst funktionierts nicht.

Das FillChar[...] leert das Array, es wird komplett mit Nullen gefüllt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
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