Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Random-Frage (https://www.delphipraxis.net/64057-random-frage.html)

Airblader 27. Feb 2006 19:35

Re: Random-Frage
 
Zitat:

Zitat von Waldteufel
wird wahrscheinlich selten vorkommen, aber wenn's wirklich Zufallszahlen sind kann das passieren).

Unendlich oft hintereinander? Wir hatten noch keine Wahrscheinlichkeitsrechnungen, aber irgendwann muss doch was anderes kommen :gruebel:

Ist es eig. Zufall, dass du als Beispiel die Zahl 42 nimmst? :mrgreen:

cruso 27. Feb 2006 20:14

Re: Random-Frage
 
Zitat:

Zitat von Airblader
Ist es eig. Zufall, dass du als Beispiel die Zahl 42 nimmst? :mrgreen:

Wenn es die "23" wäre, dann wäre es bedenklicher!* :-D


*Falls ihr den Film kennt

cruso 28. Feb 2006 09:03

Re: Random-Frage
 
Zitat:

Zitat von turboPASCAL
Wie gesagt, selber machen. Speichere die letzte Zahl und beim nächsten Random prüfst du ob die Zahl beim letzten mal schon dabei war. ;)

Ja gut, das dachte ich auch nur hab' ich es jetzt mal versucht und komischerweise klappt es nicht. Ich habe schon mehrere Möglichkeiten ausprobiert. Könnt ihr mir helfen?

Nils_13 28. Feb 2006 09:11

Re: Random-Frage
 
Ich habe mir das bisher so gedacht (ist noch nicht ganz fertig, will es euch aber nicht vorenthalten):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, letztezahl: Integer;
begin
  i := random(100);
  letztezahl := kA, wie du die letzte Zahl kriegst, da brauch ich auch noch Hilfe
  if i = letztezahl then
    random(100);
  ShowMessage(IntToStr(i));
end;

Mavarik 28. Feb 2006 09:20

Re: Random-Frage
 
Zitat:

Zitat von Nils_13
Ich habe mir das bisher so gedacht (ist noch nicht ganz fertig, will es euch aber nicht vorenthalten):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, letztezahl: Integer;
begin
  i := random(100);
  letztezahl := kA, wie du die letzte Zahl kriegst, da brauch ich auch noch Hilfe
  if i = letztezahl then
    random(100);
  ShowMessage(IntToStr(i));
end;

Ujiii und wenn der 2. Random auch wieder die gleiche Zahl bringt?

Delphi-Quellcode:

var letztezahl : integer;
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
{$IFDEF GANZSICHER}
   Count : integer;
{$ENDIF}
begin
  {$IFDEF GANZSICHER}
  Count := 0;
  {$ENDIF}
  repeat
    i := random(100);
    {$IFDEF GANZSICHER}
    inc(Count);
    {$ENDIF}

  Until (i <> letztezahl) {$IFDEF GANZSICHER} and (count < 1000) {$ENDIF};
 
  letztezahl := i;

  ShowMessage(IntToStr(i));
end;

begin
  letztezahl := 0;
end.

Frank

turboPASCAL 28. Feb 2006 09:51

Re: Random-Frage
 
Mal meine Lösung, so in der Pause aus dem Kopf....

Auf die Form muss ein Button, Timer, Memo.
Delphi-Quellcode:
implementation

{$R *.dfm}

var RandomZahlAlt: Word;

function RandomForMe(MaxRange: Word): Word;
begin
  repeat
    Result := Random(MaxRange+1);
  until RandomZahlAlt <> Result;
  RandomZahlAlt := Result;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  Timer1.Interval := 150;
  Timer1.Enabled := False;
  Button1.Caption := 'Off';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Memo1.Lines.Append(InttoStr(RandomForMe(100)));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled := not Timer1.Enabled;

  if Timer1.Enabled then Button1.Caption := 'On'
    else Button1.Caption := 'Off'
end;

end.

Grishnak 28. Feb 2006 09:53

Re: Random-Frage
 
Noch eine kleine Änderung:

Zitat:

Zitat von Mavarik
Delphi-Quellcode:

var letztezahl : integer;
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
{$IFDEF GANZSICHER}
   Count : integer;
{$ENDIF}
begin
  {$IFDEF GANZSICHER}
  Count := 0;
  {$ENDIF}
  repeat
    i := random(100);
    {$IFDEF GANZSICHER}
    inc(Count);
    {$ENDIF}

  Until (i <> letztezahl) {$IFDEF GANZSICHER} and (count < 1000) {$ENDIF};
 
  letztezahl := i;

  ShowMessage(IntToStr(i));
end;

begin
  randomize; // Zufallszahl-Generator initialisieren
  letztezahl := random(100); // nicht immer 0 als erste Zahl
end.

Frank


turboPASCAL 28. Feb 2006 09:56

Re: Random-Frage
 
Bist du sicher das man die letztezahl initialisieren muss ? Ist doch egal was da drinne steht. ;)

Mavarik 28. Feb 2006 10:40

Re: Random-Frage
 
Zitat:

Zitat von turboPASCAL
Bist du sicher das man die letztezahl initialisieren muss ? Ist doch egal was da drinne steht. ;)

Muss nicht, ist aber ein besserer Stiel!

Frank :roll:

turboPASCAL 28. Feb 2006 10:56

Re: Random-Frage
 
Zitat:

Zitat von Mavarik
Muss nicht, ist aber ein besserer Stiel!

Frank :roll:

Ich habe mal gelernt das Programierer schreibfaul sind. Desshalb gibt es ja auch C. ;)

Besserer Stiel ? Eleganterer Stiel ?! :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 2 von 3     12 3      

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