AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zufallszahlen, wer kann helfen?

Offene Frage von "kunta"
Ein Thema von kunta · begonnen am 14. Nov 2009 · letzter Beitrag vom 17. Nov 2009
 
Benutzerbild von TOC
TOC

Registriert seit: 5. Jan 2005
Ort: Trier
248 Beiträge
 
Delphi 7 Personal
 
#4

Re: Zufallszahlen, wer kann helfen?

  Alt 14. Nov 2009, 08:22
Hi!

Wie wäre es zum Beispiel mit so einer Funktion hier:

Delphi-Quellcode:
{

  Number    = Gesuchte Zahl
  RangeFrom = Untere Bereichsgrenze (einschließlich)
  RangeTo  = Obere Bereichsgrenze  (einschließlich)

  Ergebnis:
  Result = Anzahl der Versuche die Benötigt wurden
          oder
          -1 falls die angegebene gesuchte Zahl außerhalb des Bereiches liegt
}

Function GetRandomNumber(Number, RangeFrom, RangeTo: Integer): Integer;
Var
  RandNum, Range: Integer;
Begin
  // Vergleichen ob gesuchte Zahl innerhalb des Bereiches liegt,
  // um Endlosschleife zu vermeiden
  If (Number<RangeFrom) or (Number>RangeTo)
  Then Result:=-1
  Else Begin
    // Ergebnis erstmal auf 0 setzen
    Result:=0;
    // Bereich voausberechnen for Random
    Range:=RangeTo-RangeFrom+1;
    // Wiederhole...
    Repeat
      // Erzeuge eine Zufallszahl innerhalb von RangeFrom, RangeTo (einschließlich)
      RandNum:=Random(Range)+RangeFrom;
      // Anzahl versuche Erhöhen
      Inc(Result);
    // ...solange bis gesuchte Zufallszahl erzeugt wurde
    Until RandNum=Number;
  End;
End;
Also,dieser Funktion muss Du als Eingabeparameter "Number" geben, das ist dann die gesuchte Zahl, und den Bereich. In Deinem Beispiel also 1 für RangeFrom und 16 for RangeTo. Die Funktion erzeugt dann innerhalb einer Schleife solange eine Zufallszahl innerhalb des Bereiches bis der Wert von "Number" gefunden wurde. Und als Ergebnis hast Du dann die Anzahl der Versuche.

Aufrufen kannst Du diese Funktion dann so zum Beispiel:

StringGrid2.Cells[0,0]:=IntToStr(GetRandomNumber(1, 1, 16)); Und dann würde ich Dir eine Schleife empfehlen für die erste 1, also "Number", und in dieser Schleife von 1 bis 16 laufen.

Grüße von TOC!
Lars Uwe Hohmann
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
  Mit Zitat antworten Zitat
 


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 17:50 Uhr.
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